查找方法对象变量或未在excel VBA中设置的块变量

时间:2015-02-08 16:31:29

标签: excel vba find

我直接从微软网站获得了这个例子,这是关于如何使用find方法的第一个例子。问题是它给出了错误91:对象变量或没有设置块变量。它应该找到一个单元格的值为2的位置并将其更改为5,如果该范围内有任何“2”,它就会这样做,但是当它完成时它也会给出错误。我做错了什么?

Sub example()

With Worksheets(1).Range("a1:a10")
Set c = .Find(2, LookIn:=xlValues)
If Not c Is Nothing Then
    firstAddress = c.Address
    Do
        c.Value = 5
        Set c = .FindNext(c)
    Loop While Not c Is Nothing And c.Address <> firstAddress
  End If

   End With

End Sub

1 个答案:

答案 0 :(得分:0)

你的问题就在这一行:

Loop While Not c Is Nothing And c.Address <> firstAddress

VB将评估所有表达式,因此如果c为Nothing,它仍将评估c.Address并且因为您无法访问null值的属性而抛出错误。 您需要重构代码以检查每个&#34;和&#34;条件在不同的区块。