Vba 通过.find方法将范围设置为单元格

Vba 通过.find方法将范围设置为单元格,vba,set,range,Vba,Set,Range,我想将“指针”范围对象分配给一个单元格,该单元格应通过.find方法确定,并通过.offset方法将找到的地址偏移3行。 我似乎在以下代码中出错: With Sheets("Database") Dim pointer As Range Set pointer = .Cells.Find("string data").Offset(3) ... End With 我不断得到错误91:对象变量或块变量未设置 提前谢谢你的帮助 之所以出现此错误,是因为.Cells.Fi

我想将“指针”范围对象分配给一个单元格,该单元格应通过.find方法确定,并通过.offset方法将找到的地址偏移3行。 我似乎在以下代码中出错:

With Sheets("Database")

    Dim pointer As Range
    Set pointer = .Cells.Find("string data").Offset(3)
    ...

End With
我不断得到错误91:对象变量或块变量未设置


提前谢谢你的帮助

之所以出现此错误,是因为
.Cells.Find(“字符串数据”)
返回
Nothing

为避免此错误,您可以引入一个检查,如下所示:

Dim pointer As Range

With Sheets("Database")
    If Not .Cells.Find("string data") Is Nothing Then
        Set pointer = .Cells.Find("string data").Offset(3)
    End If
End With
'...

有一些有趣的参数可能会有所帮助,例如。g
LookIn
LookAt
。非常感谢。这确实是问题所在。还有一个关于类似问题的问题:Set searchRng=Range(“pointer.address:.cells(pointer.End(xlDown).Row,pointer.Column).address”)也因其他原因失败。我做错了什么?抱歉,我是VBA新手…错误1004:对象\u Global的方法“Range”failed@Ardnic对不起,我没空。我建议你发布另一个问题(如果你还没有),我相信有人可以帮你:)