Динамический массив в Excel VBA - макросы Easy Excel

Содержание

Если размер вашего массива увеличивается и вы не хотите исправлять размер массива, вы можете использовать Ключевое слово ReDim. Excel VBA затем автоматически изменяет размер массива.

Добавьте числа в столбец A.

Поместите командную кнопку на свой рабочий лист и добавьте следующие строки кода:

1. Сначала мы объявляем массив с именем numbers. Также объявите две переменные типа Integer. Один именованный размер и один с именем i.

Тусклые числа () как целое число, размер как целое число, i как целое число

Примечание: у массива еще нет размера. числа, размер и i здесь выбираются случайным образом, вы можете использовать любые имена. Не забудьте ссылаться на эти имена в остальной части кода.

2. Далее мы определяем размер массива и сохраняем его в переменной size. Для этого вы можете использовать функцию рабочего листа CountA. Добавьте следующую строку кода:

size = WorksheetFunction.CountA (Worksheets (1) .Columns (1))

3. Теперь мы знаем размер массива и можем изменить его размер. Добавьте следующую строку кода:

ReDim числа (размер)

4. Далее мы инициализируем каждый элемент массива. Используем петлю.

Для i = 1 по размеру
числа (i) = Ячейки (i, 1) .Значение
Далее я

5. Мы отображаем последний элемент массива с помощью MsgBox.

Номера MsgBox (размер)

6. Выйдите из редактора Visual Basic и нажмите кнопку команды на листе.

Результат:

7. Теперь, чтобы ясно понять, почему это называется динамическим массивом, добавьте число в столбец A.

8. Снова нажмите командную кнопку.

Вывод: Excel VBA автоматически изменил размер этого динамического массива.

9. Когда вы используете ключевое слово ReDim, вы стираете все существующие данные, которые в данный момент хранятся в массиве. Например, добавьте следующие строки кода к ранее созданному коду:

ReDim числа (3)
Номера MsgBox (1)

Результат:

Массив пуст.

10. Если вы хотите сохранить данные в существующем массиве при его изменении размеров, используйте ключевое слово Preserve.

Номера ReDim Preserve (3)
Номера MsgBox (1)

Результат:

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave