vba excel的含义<&燃气轮机;(尖括号或大于或小于符号)

vba excel的含义<&燃气轮机;(尖括号或大于或小于符号),excel,find,vba,Excel,Find,Vba,我正在使用VBA Excel中的查找函数,因此当遇到问题时,我从Excel中提供的帮助中提取了一些示例代码。我拿了他们的代码来说明一个基本的 查找函数并将其粘贴到宏中。在运行宏时,我得到一个“运行时错误'91',调试器突出显示包含尖括号的代码行。这些是代码中我无法理解的部分 谁能告诉我这些括号代表什么吗 Sub exampleFindReplace() With Worksheets(1).Range("a1:a500") Set c = .Find(2, LookIn:=xlValues)

我正在使用VBA Excel中的查找函数,因此当遇到问题时,我从Excel中提供的帮助中提取了一些示例代码。我拿了他们的代码来说明一个基本的 查找函数并将其粘贴到宏中。在运行宏时,我得到一个“运行时错误'91',调试器突出显示包含尖括号的代码行。这些是代码中我无法理解的部分

谁能告诉我这些括号代表什么吗

Sub exampleFindReplace()

With Worksheets(1).Range("a1:a500")
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
子示例FindReplace()
带工作表(1)。范围(“a1:a500”)
Set c=.Find(2,LookIn:=xlValues)
如果不是,那么c什么都不是
firstAddress=c.地址
做
c、 值=5
集合c=.FindNext(c)
循环而不是c为Nothing,c.Address为firstAddress
如果结束
以
端接头
操作符的意思是
c.Address
不等于

在C风格的语言中,这相当于
C.Address!=firstAddress


旁注,我认为您得到了错误91(未设置对象变量或With block变量),因为代码行
循环而非c为空,c.Address firstAddress
将始终尝试执行第二个条件(
c.Address firstAddress
),即使第一个条件(
而非c为空
)计算结果为false。因此,对c.Address的调用将引发异常

请尝试这样编写代码,因为这样做是不允许的:

Sub exampleFindReplace()

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

End Sub
子示例FindReplace()
带工作表(1)。范围(“a1:a500”)
Set c=.Find(2,LookIn:=xlValues)
如果不是,那么c什么都不是
firstAddress=c.地址
做
c、 值=5
集合c=.FindNext(c)
如果c为Nothing,则退出Do
在c.AddressFirstAddress时循环
如果结束
以
端接头

谢谢,我不知道怎么称呼他们,所以很难找到。我想搜索“vba操作员”会有所帮助,但我不认为这样称呼它。这很有帮助。@Charlie,不客气。顺便说一句,在这个网站上(看到你是新的),如果答案有帮助,你可以向上投票(点击向上箭头),如果它解决了你的问题,你就接受它(点击复选标记)。尽管如此,我还是很乐意提供帮助。至于为什么总是评估
c.Address firstAddress
:VBA不支持短路布尔运算符:-)不知道为什么,但这就是它的方式。@pst,是的,如果这是VB.NET,短路运算符也会是
并且
@Matt Spinelli谢谢Matt!我对这种区别有点不确定。尽管如此,我仍然需要赢得我的投票权,所以一旦我到了那里,我会对那些乐于助人的人给予更多的正面反馈。