vba-excel<>的含义(有角度的括号或大于和小于符号)

时间:2011-06-30 16:34:54

标签: excel-vba find vba excel

我正在使用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

1 个答案:

答案 0 :(得分:4)

<>运算符表示c.Address 不等于 firstAddress

使用C风格的语言,这相当于c.Address != firstAddress


旁注,我认为你得到错误91(对象变量或未设置块变量。)因为代码行Loop While Not c Is Nothing And c.Address <> firstAddress将始终尝试执行第二个条件(c.Address <> firstAddress)如果第一个(While Not C Is Nothing)评估为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