查找方法对象变量或块变量未在 excel VBA 中设置
Find method object variable or with block variable not set in excel VBA
我直接从微软网站上得到这个例子,这是第一个关于如何使用 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
你的问题是这一行:
Loop While Not c Is Nothing And c.Address <> firstAddress
VB 将计算所有表达式,因此如果 c 为 Nothing,它仍将计算 c.Address 并抛出错误,因为您无法访问空值的 属性。
您需要重构代码以检查不同块中的每个 "And" 条件。
我直接从微软网站上得到这个例子,这是第一个关于如何使用 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
你的问题是这一行:
Loop While Not c Is Nothing And c.Address <> firstAddress
VB 将计算所有表达式,因此如果 c 为 Nothing,它仍将计算 c.Address 并抛出错误,因为您无法访问空值的 属性。 您需要重构代码以检查不同块中的每个 "And" 条件。