Find上的错误代码为91

时间:2016-02-24 18:15:59

标签: vba excel-vba excel

这可能看起来像一个简单的问题,但我对VBA很新,我不知道为什么我会收到错误。

Dim c As String
c = Sheet2.Range("B3:B54").Find("NLwk01")
  

错误代码为91:对象变量或未设置块变量。

我认为我应该使用单元格而不是范围,但这会给

带来另一个错误
  

错误代码5:无效的过程调用或参数。

1 个答案:

答案 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

希望这可能会有所帮助。