Массив объектов VBA

Содержание

В этом руководстве будет показано, как создавать и использовать массивы объектов в VBA.

В VBA массивы - это переменные, которые хранят несколько значений. Вы можете хранить объекты VBA в массивах так же, как и любые другие данные.

Объявление массива объектов

В этом примере мы объявим массив листов VBA:

1 Тусклые арки (3) в виде рабочего листа

Заполнение массива статических объектов

Объявите массив объектов статическим, а затем вы можете заполнить массив листами, выбранными из книги.

12345678 Sub TestObjArray ()'определить массив как массив рабочего листаТусклые стрелки (от 1 до 3) в виде рабочего листа'добавляем 3 листа в массивset arWks (1) = Листы (1)установить arWks (2) = Листы (2)Установить arWks (3) = Листы (3)Конец подписки

Заполнение массива динамических объектов

Вы можете объявить массив объектов динамическим, а затем подсчитать количество листов в книге перед назначением размера массива массиву объектов.

1234567891011121314 Sub TestObjArray ()'определить массив как массив рабочего листаDim arWks () как рабочий лист'подсчитайте, сколько листов в файле, и уменьшите размер массиваDim n как целое числоDim i как целое число'подсчитайте листы и минус один, чтобы установить границы для массиваn = Application.Sheets.Count - 1ReDim arWks (n)'заполните массив рабочего листа всеми листами в книгеДля i = LBound (arWks) в UBound (arWks)Установите arWks (i) = ActiveWorkbook.Sheets (i + 1)Далее яКонец подписки

В приведенном выше примере мы сначала объявляем массив рабочего листа. Затем мы подсчитываем количество листов в книге и присваиваем это значение минус единице UBound массива. Это связано с тем, что LBound массива начинается с 0. Наконец, мы перебираем листы и добавляем каждый лист в массив.

Использование массива объектов в коде VBA

После того, как мы заполнили массив Worksheet, мы можем использовать VBA для цикла по массиву.

123456789101112131415161718 Sub TestObjArray ()'определить массив как массив рабочего листаDim arWks () как рабочий лист'подсчитайте, сколько листов в файле, и уменьшите размер массиваDim n как целое числоDim i как целое число'подсчитайте листы и минус один, чтобы установить границы для массиваn = Application.Sheets.Count - 1ReDim arWks (n)'заполните массив рабочего листа всеми листами в книгеДля i = LBound (arWks) в UBound (arWks)Установите arWks (i) = ActiveWorkbook.Sheets (i + 1)Далее я'сделать что-нибудь с каждым листом в массивеДля i = LBound (arWks) в UBound (arWks)arWks (i) .Range ("A1: H1"). Font.Bold = TrueДалее яКонец подписки

В приведенном выше примере мы перебираем массив и выделяем жирным шрифтом первую строку каждого листа в массиве.

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

wave wave wave wave wave