Я довольно новичок в VBA, и у меня возникли проблемы с пониманием того, как работает Range.
Выше я пытаюсь научиться использовать циклы для выбора ячеек, содержащих определенное значение, а затем сохранить все эти выбранные ячейки в объекте диапазона. Когда я debug.print MyRange.Address, я получаю распечатку ячеек, которые содержат искомое значение, как и ожидалось. Однако, когда я пытаюсь перебрать MyRange по одной ячейке за раз, набрав, например, «MyRange (2) .Address», я получаю неожиданные ячейки, которые не содержат значение, которое я искал.
Что здесь происходит? Я думал, что MyRange будет списком объектов ячеек, которые содержат мое искомое значение, но, похоже, он содержит нечто большее.
Sub FindValues2()
Dim MyRange As Range
Dim Cell As Object
'Check every cell in the range for matching criteria.
For Each Cell In Range("A1:B11")
If Cell.Value = "a" Then
If MyRange Is Nothing Then
Set MyRange = Range(Cell.Address)
Else
Set MyRange = Union(MyRange, Range(Cell.Address))
End If
End If
Next
'Select the new range of only matching criteria
Debug.Print MyRange.Address(1)
End Sub