Оператор <>
означает 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
) оценивается как ложное. Таким образом, вызов на 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