Это может не помочь ответить на ваш вопрос напрямую, но я нашел что-то полезное при попытке работать с динамическими диапазонами, которые могут вам помочь.
Предположим, что в вашем рабочем листе есть цифры от 100 до 108 в ячейках A1: C3:
A B C
1 100 101 102
2 103 104 105
3 106 107 108
Затем, чтобы выбрать все ячейки, вы можете использовать свойство CurrentRegion
:
Sub SelectRange()
Dim dynamicRange As Range
Set dynamicRange = Range("A1").CurrentRegion
End Sub
Преимущество этого состоит в том, что если вы добавляете новые строки или столбцы в свой блок чисел (например, 109, 110, 111), то CurrentRegion всегда будет ссылаться на расширенный диапазон (в данном случае A1: C4).
Я довольно часто использовал CurrentRegion в своем коде VBA и обнаружил, что он наиболее полезен при работе с диапазонами размера dynmacial. Кроме того, он избегает необходимости жесткого кодирования диапазонов в вашем коде.
В качестве последнего примечания в моем коде вы увидите, что я использовал A1 в качестве ссылочной ячейки для CurrentRegion. Это также будет работать независимо от того, на какую ячейку вы ссылаетесь (например, попробуйте заменить A1 на B2). Причина в том, что CurrentRegion выберет все смежные ячейки на основе ссылочной ячейки.