excelvba:如何解决运行时错误&x27;91';?

excelvba:如何解决运行时错误&x27;91';?,vba,excel,Vba,Excel,我得到一个错误: 运行时错误“91”:未设置对象变量或带块变量 当我尝试执行此代码时: MsgBox Worksheets("Sheet2").Range("2:2").Find(Worksheets("Sheet1").Range("E5").Value, , , xlWhole) 为什么??这一排怎么了 编辑 如果我在管理文本或数字,则该代码有效。但是我在工作表(“Sheet1”).Range(“E5”)和工作表(“Sheet2”).Range(“2:2”)将结果分配给一个范围,并使用.F

我得到一个错误:

运行时错误“91”:未设置对象变量或带块变量

当我尝试执行此代码时:

MsgBox Worksheets("Sheet2").Range("2:2").Find(Worksheets("Sheet1").Range("E5").Value, , , xlWhole)
为什么??这一排怎么了

编辑


如果我在管理文本或数字,则该代码有效。但是我在
工作表(“Sheet1”).Range(“E5”)
工作表(“Sheet2”).Range(“2:2”)
结果分配给一个范围,并使用
.Find()
设置范围。 如果未找到任何内容,则
Range()
将为
nothing

Sub TestMe()

    Dim result As Range

    With Worksheets(1)
        Set result = .Range("2:2").Find("Something", LookAt:=xlWhole)
    End With

    If Not result Is Nothing Then
        Debug.Print result.Address
    Else
        Debug.Print "Something is not on the second row!"
    End If

End Sub
如果要处理日期,则必须使用
LookAt:=xlWhole
参数:


结果
分配给一个范围,并使用
.Find()
设置范围。 如果未找到任何内容,则
Range()
将为
nothing

Sub TestMe()

    Dim result As Range

    With Worksheets(1)
        Set result = .Range("2:2").Find("Something", LookAt:=xlWhole)
    End With

    If Not result Is Nothing Then
        Debug.Print result.Address
    Else
        Debug.Print "Something is not on the second row!"
    End If

End Sub
如果要处理日期,则必须使用
LookAt:=xlWhole
参数:


找不到该值,因此它不返回任何内容。请避免在运行时对有可能成为
nothing
的对象引用进行成员调用
Range.Find
在找不到要查找的内容时返回
Nothing
,因此使用
Range.Find
避免此错误的最简单方法是在
Range
对象变量中捕获结果,然后验证它是否为
Nothing
,如果不是,则对其进行成员调用以进行确认,是否要搜索第#2行(不是第2列)是否正确?未找到该值,因此它不会返回任何内容。请避免在运行时对可能为
nothing
的对象引用进行成员调用
Range.Find
在找不到要查找的内容时返回
Nothing
,因此使用
Range.Find
避免此错误的最简单方法是在
Range
对象变量中捕获结果,然后验证它是否为
Nothing
,如果不是,则对其进行成员调用以进行确认,你想搜索第2行(不是第2列)对吗?忍者编辑让你赢得了我的投票。谢谢你的解释。你知道我有多喜欢“代码转储”的答案;-)@马蒂尤金登-没有人喜欢他们。:)@维蒂亚塔表示感谢,但这并不能解决问题。考虑一下我在管理日期。我的代码在使用文本或数字时有效,但在使用日期时无效。@Stefano-日期有点难。请参见编辑。在那里,你应该始终把
xlWhole
作为注视参数-忍者编辑为你赢得了我的支持票。谢谢你的解释。你知道我有多喜欢“代码转储”的答案;-)@马蒂尤金登-没有人喜欢他们。:)@维蒂亚塔表示感谢,但这并不能解决问题。考虑一下我在管理日期。我的代码在使用文本或数字时有效,但在使用日期时无效。@Stefano-日期有点难。请参见编辑。您应该始终将
xlWhole
作为LookAt参数-