Найти в Дзене
VBA Excel с нуля

VBA Excel № 107. Работа с диапазонами. Изменение размеров диапазона.

Доброго времени суток уважаемые читатели. Итак, изменение размеров диапазона в VBA предоставляет эффективный способ манипулирования массивами данных в Excel. Одним из ключевых инструментов для этой цели является свойство Resize объекта Range, которое позволяет легко изменять размеры диапазона в заданных пределах. Свойство Resize принимает два аргумента: количество строк и количество столбцов. Первый аргумент представляет общее количество строк в диапазоне, а второй - количество столбцов. Давайте рассмотрим примеры использования этого свойства для более ясного понимания. Пример 1: Изменение размера диапазона на 10 строк и 5 столбцов: В этом примере создается объектная переменная МойДиапазон, представляющая диапазон от ячейки A1 до E10. Первый аргумент Resize указывает количество строк (10), а второй - количество столбцов (5). Как мы можем это проверить? Давайте добавим две строки в код и пройдем её построчно (клавишей F8 или Fn+F8если у вас ноутбук): В результате выполнения процедуры
Оглавление
Скриншот с моего ноутбука
Скриншот с моего ноутбука

Доброго времени суток уважаемые читатели. Итак, изменение размеров диапазона в VBA предоставляет эффективный способ манипулирования массивами данных в Excel. Одним из ключевых инструментов для этой цели является свойство Resize объекта Range, которое позволяет легко изменять размеры диапазона в заданных пределах.

Свойство Resize принимает два аргумента: количество строк и количество столбцов. Первый аргумент представляет общее количество строк в диапазоне, а второй - количество столбцов. Давайте рассмотрим примеры использования этого свойства для более ясного понимания.

Пример 1: Изменение размера диапазона на 10 строк и 5 столбцов:

Скриншот с моего ноутбука
Скриншот с моего ноутбука

В этом примере создается объектная переменная МойДиапазон, представляющая диапазон от ячейки A1 до E10. Первый аргумент Resize указывает количество строк (10), а второй - количество столбцов (5).

Как мы можем это проверить? Давайте добавим две строки в код и пройдем её построчно (клавишей F8 или Fn+F8если у вас ноутбук):

Скриншот с моего ноутбука
Скриншот с моего ноутбука

В результате выполнения процедуры вы увидите, что после строки МойДиапазон.Value = 1 ячейка А1 примет результат 1, а после выполнения строки МойДиапазон.Value = 2 диапазон от A1 до E10 примет результат 2.

Скриншот с моего ноутбука
Скриншот с моего ноутбука

Пример 2: Увеличение размера диапазона на одну строку. Добавим в код одну строку:

Set МойДиапазон = МойДиапазон.Resize(МойДиапазон.Rows.Count + 1)

Скриншот с моего ноутбука
Скриншот с моего ноутбука

В этой процедуре используется оператор Resize для увеличения диапазона на одну строку, не изменяя количество столбцов (нет второго аргумента). Здесь Rows.Count возвращает текущее количество строк в диапазоне, и к нему прибавляется 1, а затем текущий диапазон выделяется (Select).

Скриншот с моего ноутбука
Скриншот с моего ноутбука

Пример 3: Изменение определения именованного диапазона "Данные"

Скриншот с моего ноутбука
Скриншот с моего ноутбука

В этом примере кода изменяется определение именованного диапазона, назовём его "Данные", добавляя ему одну дополнительную строку. То есть, если, например, именованный диапазон был ("A1:E10"), то он станет ("A1:E11"). Обращаю ваше внимание уважаемые читатели, на использование конструкции With, которая позволяет более компактно обращаться к свойствам объекта Range.

Подводя итог понимаем, что свойство Resize является удобным инструментом для управления размерами диапазонов в VBA Excel.