这可能看起来像一个简单的问题,但我对VBA很新,我不知道为什么我会收到错误。
Dim c As String
c = Sheet2.Range("B3:B54").Find("NLwk01")
错误代码为91:对象变量或未设置块变量。
我认为我应该使用单元格而不是范围,但这会给
带来另一个错误错误代码5:无效的过程调用或参数。
答案 0 :(得分:1)
正如评论主题中提到的,Excel VBA Find()
函数返回Range
对象。因此,与您的特定示例相关,它可以编码为以下示例代码段:
Sub FindRowIndex()
Dim c
Dim rowIdx As Integer
Dim cellValue As String
'return Range object if found
Set c = Sheet2.Range("B3:B54").Find("NLwk01")
If Not c Is Nothing Then
'return the row index (shown as an example)
rowIdx = c.Row
'return the same string used as search criterion "NLwk01"
cellValue = c.Value
End If
End Sub
与您的案例搜索区域("B3:B54"
)相关,rowIdx
可以声明为Integer
;对于扩展区域,您可以使用Long
。
另外,正如评论主题中所述,您可以声明:Dim c As Range
。
希望这可能会有所帮助。