Изменить размер диапазона с помощью VBA
В этом руководстве будет показано, как использовать Изменить размер свойства принадлежащий Объект диапазона to change, чтобы вернуть новый диапазон, размер которого изменился по сравнению с исходным объектом Range.
Синтаксис
Синтаксис свойства Resize:
1 | Диапазон ("A1"). Изменить размер (RowSize, ColumnSize) |
Где Range («A1») - ваш начальный диапазон.
RowSize и ColumnSize должны быть больше нуля. Каждый ввод является необязательным (например, вы можете опустить RowSize, чтобы изменить только количество столбцов, или наоборот).
Изменить размер количества строк и столбцов
В следующем примере диапазон с одной ячейкой A1 расширяется до диапазона A1: D10 путем увеличения количества строк до 10 и количества столбцов до 5.
1 | Диапазон ("A1"). Изменить размер (10, 5). Выбрать |
Или, чаще всего, вы назначаете измененный диапазон переменной:
12 | 'Измените размер диапазона до желаемого размера и назначьте переменнойУстановите newRng = ActiveSheet.Range ("A1"). Resize (10, 5) |
Изменить размер только количества строк
В следующем примере изменяется только количество строк:
12 | 'Изменить только размер строки, новый диапазон будет составлять 1 австралийский доллар: 10 австралийских долларовУстановите newRng = rng.Resize (10) |
Изменить размер только количества столбцов
В следующем примере изменяется только количество столбцов:
12 | 'Изменить только размер столбца, новый диапазон будет $ A $ 1: $ E $ 1Установите newRng = rng.Resize (, 5) |
Изменить размер диапазона таблицы, чтобы исключить заголовок
Если у вас есть таблица на активном листе со строкой заголовка, код сначала выберет всю таблицу, а затем переместится на одну строку вниз, чтобы исключить заголовок, используя метод Range.Offset. Затем он будет использовать свойство Range.Resize, чтобы уменьшить размер на одну строку.
1234567891011 | Подложка SelectTableData ()' **ВАЖНЫЙ**'Щелкните любую ячейку таблицы перед запуском макроса'Переместитесь на одну строку вниз, используя Смещение, а затем уменьшите размер диапазона на одну строкуУстановите tbl = ActiveCell.CurrentRegion.Offset (1, 0) .Resize (tbl.Rows.Count - 1, _tbl.Columns.Count)'Данные выбраны без строки заголовкаtbl.Address.SelectКонец подписки |
Запись двумерного массива в диапазон
Еще одно распространенное использование - запись двухмерного массива на лист. Поскольку записываемый диапазон должен соответствовать размеру массива, который обычно не известен заранее, для установки диапазона вывода используется метод Resize.
В приведенном ниже примере данные из диапазона A1: E10 из активного листа будут считываться в массив и записываться в массив на листе «Output», начиная с ячейки A1:
123456 | Sub WriteArray ()'Считываем данные в массивdata = Range ("A1: E10"). Значение'Измените размер выходного диапазона и напишите массивЛисты («Вывод»). Диапазон («A1»). Изменить размер (UBound (данные, 1), UBound (данные, 2)). Значение = данныеКонец подписки |
Автор сценария: Винамра Чандра