我直接从微软网站获得了这个例子,这是关于如何使用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
答案 0 :(得分:0)
你的问题就在这一行:
Loop While Not c Is Nothing And c.Address <> firstAddress
VB将评估所有表达式,因此如果c为Nothing,它仍将评估c.Address并且因为您无法访问null值的属性而抛出错误。 您需要重构代码以检查每个&#34;和&#34;条件在不同的区块。