Почему Range (x) выбирает ячейку, которой не должно быть в моем диапазоне? - PullRequest
1 голос
/ 28 января 2020

enter image description here

Я довольно новичок в 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

1 Ответ

1 голос
/ 28 января 2020

Вместо этого используйте «Debug.Print MyRange.Areas (2) .Address». Спасибо @BigBen!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...