Массивы Excel VBA: что это такое, как использовать & Типы массивов в VBA

Содержание:

Anonim

Что такое массив VBA?

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

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

В этом руководстве предполагается, что вы используете Microsoft Excel версии 2013. Эти знания по-прежнему применимы и к другим версиям Microsoft Excel.

В этом руководстве по программированию на VBA вы узнаете:

  • В чем преимущества массивов?
  • Типы массивов в VBA
  • Как использовать массив в Excel VBA
  • Тестируем наше приложение

В чем преимущества массивов?

Ниже приведены некоторые из преимуществ, предлагаемых функцией массива VBA.

  1. Сгруппируйте логически связанные данные вместе - скажем, вы хотите сохранить список студентов. Вы можете использовать одну переменную массива, которая имеет отдельные местоположения для категорий учащихся, например, детский сад, начальную, среднюю, среднюю школу и т. Д.
  2. Массивы упрощают написание поддерживаемого кода. Для одних и тех же логически связанных данных он позволяет вам определять одну переменную вместо определения более одной переменной.
  3. Лучшая производительность - после определения массива данные быстрее извлекаются, сортируются и изменяются.

Типы массивов в VBA

VBA поддерживает два типа массивов, а именно;

  • Статические - у этих типов массивов есть фиксированное заранее определенное количество элементов, которые могут быть сохранены. Невозможно изменить размер типа данных статического массива. Это полезно, когда вы хотите работать с известными объектами, такими как количество дней в неделе, пол и т. Д.

    Например : Dim ArrayMonth (12) как строка

  • Динамический - у этих типов массивов нет фиксированного заранее определенного количества элементов, которые могут быть сохранены. Они полезны при работе с объектами, количество которых невозможно определить заранее.

    Например : Dim ArrayMonth () как вариант

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

Статические массивы

Синтаксис объявления массивов STATIC следующий:

Dim arrayName (n) as datatype

ЗДЕСЬ,

Код Действие
Dim arrayName (n) тип данных
  1. Он объявляет переменную массива с именем arrayName с размером n и типом данных. Размер относится к количеству элементов, которые может хранить массив.

Динамические массивы

Синтаксис объявления ДИНАМИЧЕСКИХ массивов следующий:

Dim arrayName() as datatypeReDim arrayName(4)

ЗДЕСЬ,

Код Действие
Dim arrayName () тип данных
  1. Он объявляет переменную массива с именем arrayName без указания количества элементов.
ReDim arrayName (4)
  1. Он определяет размер массива после того, как он был определен.

Размеры массива

Массив может быть одномерным, двухмерным или многомерным.

  • Одно измерение : в этом измерении массив использует только один индекс. Например, количество людей каждого возраста.
  • Два измерения : в этом измерении массив использует два индекса. Например, количество учеников в каждом классе. Требуется количество классов и количество учеников в каждом классе.
  • Многомерный : в этом измерении массив использует более двух индексов. Например, температура днем. (30, 40, 20).

Как использовать массив в Excel VBA

Создадим простое приложение. Это приложение заполняет лист Excel данными из переменной массива. В этом примере массива VBA мы собираемся сделать следующие вещи.

  • Создайте новую книгу Microsoft Excel и сохраните ее как книгу Excel с поддержкой макросов (* .xlsm).
  • Добавить командную кнопку в книгу
  • Задайте свойства имени и заголовка командной кнопки
  • Программирование VBA, заполняющего лист Excel

Давайте делать это упражнение пошагово,

Шаг 1. Создайте новую книгу

  1. Откройте Microsoft Excel
  2. Сохраните новую книгу как VBA Arrays.xlsm

Шаг 2 - Добавьте командную кнопку

Примечание. В этом разделе предполагается, что вы знакомы с процессом создания интерфейса в Excel. Если вы не знакомы, прочтите руководство VBA Excel Form Control & ActiveX Control. Он покажет вам, как создать интерфейс.

  1. Добавить командную кнопку на лист
  1. Задайте для свойства name значение cmdLoadBeverages
  2. Установите для свойства caption значение «Загрузить напитки».

Теперь ваш графический интерфейс должен выглядеть следующим образом

Шаг 3 - Сохраните файл

  1. Нажмите кнопку "Сохранить как"
  2. Выберите книгу Excel с поддержкой макросов (* .xlsm), как показано на изображении ниже.

Шаг 4 - Напишите код

Теперь напишем код для нашего приложения

  1. Щелкните правой кнопкой мыши кнопку «Загрузить напитки» и выберите код просмотра.
  2. Добавьте следующий код в событие щелчка cmdLoadBeverages
Private Sub cmdLoadBeverages_Click()Dim Drinks(1 To 4) As StringDrinks(1) = "Pepsi"Drinks(2) = "Coke"Drinks(3) = "Fanta"Drinks(4) = "Juice"Sheet1.Cells(1, 1).Value = "My Favorite Beverages"Sheet1.Cells(2, 1).Value = Drinks(1)Sheet1.Cells(3, 1).Value = Drinks(2)Sheet1.Cells(4, 1).Value = Drinks(3)Sheet1.Cells(5, 1).Value = Drinks(4)End Sub

ЗДЕСЬ,

Код

Действие

Тусклые напитки (от 1 до 4) в виде строки

  • Он объявляет переменную массива с именем Drinks. Первый индекс массива равен 1, а последний индекс массива - 4.

Напитки (1) = "Пепси"

  • Присваивает значение Pepsi первому элементу массива. Другой аналогичный код делает то же самое для других элементов в массиве.

Sheet1.Cells (1, 1) .Value = «Мои любимые напитки».

  • Записывает значение «Мои любимые напитки» в адрес ячейки A1. Sheet1 ссылается на лист, а Cells (1,1) ссылается на строку номер 1 и столбец 1 (B).

Sheet1.Cells (2, 1) .Value = Напитки (1)

  • Записывает значение элемента массива с индексом 1 в строку номер два столбца 1

Тестируем наше приложение

Выберите вкладку разработчика и убедитесь, что кнопка режима разработки выключена. Индикатор будет иметь белый фон, а не цветной (зеленоватый) фон. (См. Изображение ниже)

Нажмите кнопку "Загрузить напитки".

Вы получите следующие результаты

Загрузите Excel, содержащий приведенный выше код

Загрузите приведенный выше код Excel

Резюме

  1. Массив - это переменная, способная хранить более одного значения.
  2. Excel VBA поддерживает статические и динамические массивы
  3. Массивы упрощают написание поддерживаемого кода по сравнению с объявлением множества переменных для логически связанных данных.