Свойство Resize объекта Range позволяет в коде VBA Excel изменять размер указанного диапазона. Синтаксис свойства Range.Resize, его параметры и примеры использования.
Описание свойства Range.Resize
Свойство Range.Resize устанавливает новый размер исходного диапазона по указанному количеству строк и столбцов.
Синтаксис свойства Range.Resize
1 |
Expression.Resize(RowSize, ColumnSize) |
Конструкция, представляющая синтаксис свойства, не может использоваться отдельно сама по себе, иначе VBA Excel сгенерирует ошибку. Поскольку свойство Range.Resize возвращает диапазон нового размера, его можно присвоить переменной или применить к нему какой-либо метод.
Параметры свойства Range.Resize
Параметр | Описание |
---|---|
Expression | Выражение, возвращающее исходный диапазон, которому требуется изменить размер. Тип данных параметра — Range. |
RowSize | Число строк или выражение, возвращающее количество строк нового диапазона. Тип данных параметра — Variant. Если этот аргумент пропущен, число строк в диапазоне останется прежним. |
ColumnSize | Число столбцов или выражение, возвращающее количество столбцов нового диапазона. Тип данных параметра — Variant. Если этот аргумент пропущен, число столбцов в диапазоне останется прежним. |
Параметры RowSize и ColumnSize определяют именно количество строк и столбцов нового диапазона, а не количество добавляемых или вычитаемых из исходного диапазона. Значения аргументов RowSize и ColumnSize должны быть больше нуля, иначе VBA Excel сгенерирует ошибку.
Примеры использования в VBA Excel
Пример 1
1 2 3 4 5 6 |
Sub Primer1() Dim a As Range Set a = Range("C3:E5") Set a = a.Resize(5, 5) MsgBox a.Address End Sub |
В первом примере мы присваиваем переменной a диапазон из трех столбцов и трех строк, а затем преобразуем его с помощью кода VBA Excel в диапазон из пяти столбцов и пяти строк и перезаписываем его в ту же переменную a. Обратите внимание, что диапазон расширяется вправо (столбцы) и вниз (строки). При уменьшении диапазона, «лишние столбцы и строки» будут исключены из него, соответственно, справа и снизу.
Пример 2
1 2 3 4 5 6 |
Sub Primer2() Dim a As Range Set a = Range("A1:E5") a.Resize(2, 2).Select MsgBox a.Address End Sub |
Во втором примере мы уменьшили размер исходного диапазона и применили к нему метод Select. Обратите внимание, что уменьшенный диапазон выбран с помощью метода Select на активном листе рабочей книги Excel, а в переменной a диапазон остался прежним, что и покажет информационное окно MsgBox.
Пример 3
1 2 3 4 5 |
Sub Primer3() Dim a As Range Set a = Union(Range("A1:A5"), Range("B1:B5")).Resize(4, 4) MsgBox a.Address End Sub |
В третьем примере кода VBA в качестве Expression свойства Range.Resize используется выражение с методом Union.