Перейти к содержимому

VBA Excel. Свойство Range.Resize (синтаксис, примеры)

Свойство Resize объекта Range позволяет в коде VBA Excel изменять размер указанного диапазона. Синтаксис свойства Range.Resize, его параметры и примеры использования.

  1. Описание свойства Range.Resize
  2. Примеры использования в VBA Excel

Описание свойства Range.Resize

Свойство Range.Resize устанавливает новый размер исходного диапазона по указанному количеству строк и столбцов.

Синтаксис свойства Range.Resize

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

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

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

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.

Добавить комментарий

Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора.