phi*_*652 0 excel vba runtime-error excel-vba excel-2010
我知道其他问题也被提出同样的错误,但它并没有接近我所拥有的.我试图通过循环(实验室值更改)找到可以在B列中多次找到变量lab的值的行,它第一次工作但第二次出现此错误.
For Each lab In arr
NFD = el & " " & Sheets("Sheet1").Cells(1, 3).value
If SheetExists(NFD) Then
Worksheets(NFD).Activate
Dim FindRow As Range
Dim FindRowNumber As Long
Set FindRow = Sheets(NFD).Range("B:B").Find(What:=lab, LookIn:=xlValues)
FindRowNumber = FindRow.Row 'error on this line
MsgBox FindRowNumber
End If
Next
Run Code Online (Sandbox Code Playgroud)
EDIT1:如果有人有兴趣,这是工作代码:
For Each lab In arr
If lab <> "" Then
lab = Trim(lab)
'Find element Sheet
NFD = el & " " & Sheets("Sheet1").Cells(1, 3).value
If SheetExists(NFD) Then
'Find lab number row in colunm B
Set FindRow = Sheets(NFD).Range("B:B").Find(What:=lab, LookIn:=xlValues)
If FindRow Is Nothing Then
Debug.Print "Nothing Found"
Else
FindRowNumber = FindRow.Row
End If
End If
End If
Next
Run Code Online (Sandbox Code Playgroud)
您可能需要检查是否找到了任何内容.如果没有项目,FindRow将是'Nothing'.
If FindRow Is Nothing Then
MsgBox "Nothing Found"
'you can set FindRowNumber to something here if you want, like 0 or -1
Else
FindRowNumber = FindRow.Row
MsgBox FindRowNumber
End If
Run Code Online (Sandbox Code Playgroud)
在评论问题后编辑我的测试代码是:
Sub test()
Dim arr(0 To 2) As String
Dim lab As Variant
Dim FindRow As Range
Dim FindRowNumber As Long
arr(0) = "aaa"
arr(1) = "bbb"
arr(2) = "ccc"
For Each lab In arr
Set FindRow = Sheets("Sheet1").Range("B:B").Find(What:=lab, LookIn:=xlValues)
If FindRow Is Nothing Then
Debug.Print "Nothing Found"
'you can set FindRowNumber to something here if you want, like 0 or -1
Else
FindRowNumber = FindRow.Row
Debug.Print FindRowNumber
End If
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
我分别在单元格B1,B2和B3中有'aaa','bbb'和'ccc',它们都按预期工作,在调试控制台中打印1,2和3.