Массивы Excel VBA

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

Если у нас есть 5 ячеек, которые содержат числа, нам нужно объявить 5 переменных для хранения 5 разных чисел в диапазоне. Но используя массив, мы можем хранить 5 разных значений в одной переменной.

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

Давайте разберемся, как использовать массивы Excel VBA и их типы на некоторых примерах.

Вы можете скачать этот шаблон Excel VBA Arrays здесь - Шаблон Excel VBA Arrays

Пример № 1

Посмотрите на приведенный ниже пример. X - это переменная, которая содержит тип данных integer.

Код:

 Sub Array_Example1 () Dim x As Integer x = 1 End Sub 

Теперь присвойте значение 1 объявленной переменной x.

Давайте вставим значение 1 в ячейку A1.

Код:

 Sub Array_Example1 () Dim x As Integer x = 1 Диапазон («A1»). Значение = x 
 End Sub 

Значение x равно 1, а в диапазоне A1 значение будет вставлено как значение x, т. Е. Значение x равно 1. Теперь запустите код с помощью клавиши F5 или вручную, чтобы увидеть результаты.

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

Пример № 2

Теперь взгляните на приведенный ниже пример. Имя переменной - x, а тип данных - LONG. Но при объявлении самой переменной я открыл скобку и упомянул от 1 до 5. Это означает, что переменная x будет содержать 5 различных типов значений.

Код:

 Sub Array_Example () Dim x (от 1 до 5) как длинный, i как целочисленный конец Sub 

После этого я присвоил значения каждой переменной. X (1) = 20 означает, что первая переменная должна быть равна значению 20. X (2) = 25 означает, что вторая переменная должна быть равна значению 25 и так далее.

Код:

 Sub Array_Example () Dim x (от 1 до 5) как длинный, i как целое число x (1) = 20 x (2) = 25 x (3) = 44 x (4) = 78 x (5) = 96 End Sub 

Позже я объявил еще одну переменную под названием «I», это второй тип переменной и содержит тип данных integer .

На следующем шаге я применил циклы FOR для вставки назначенных номеров в массив в первом столбце. Я установил значение переменной i равным 1, и я дал указание циклу работать от 1 до 5 раз. Когда цикл запускается в первый раз, значение i будет равно 1. CELLS (I, 1) .value = x (i) это означает, что в первый раз i равно 1, т. Е. CELLS (1, 1) .value = x (1), в первом столбце первого ряда (ячейка A1) значением будет значение первого массива ( x (1) ), т. е. 20.

Когда цикл запускается во второй раз, значение i становится равным 2, т.е. CELLS (2, 1) .value = x (2), во втором столбце первого ряда (A2) значением будет значение второго массива ( x (2) ) то есть 25.

Код:

 Sub Array_Example () Dim x (1 - 5) As Long, i As Integer x (1) = 20 x (2) = 25 x (3) = 44 x (4) = 78 x (5) = 96 Для i = Ячейки от 1 до 5 (i, 1). Значение = x (i) Далее i End Sub 

Например, когда циклы продолжают работать, значения будут меняться. Когда циклы запускаются в третий раз, значение ячейки A3 будет равно 44, в четвертом цикле время выполнения цикла значение ячейки А4 будет равно 78, если значение цикла циклов, запущенных в последний раз или в пятый раз, будет равно 96.

После запуска кода с помощью клавиши F5 или вручную мы получим результаты, как показано ниже.

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

Массивы имеют разные типы в VBA. В Excel доступно пять типов массивов.

  • Статический массив
  • Динамический Массив
  • Одномерный массив
  • Двумерный массив
  • Многомерный массив

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

В этом типе массива длина массива заранее определяется заранее и остается постоянной.

Код:

 Sub Static_Example () Dim ArrayType (от 1 до 3) как целое число ArrayType (1) = 0 ArrayType (2) = 1 ArrayType (3) = 2 ячейки (1, 1). Значение = ArrayType (1) Ячейки (1, 2) .Value = ArrayType (2) Ячейки (1, 3) .Value = ArrayType (3) End Sub 

В приведенном выше коде длина ArrayType определяется заранее от 1 до 3, а тип данных - Integer.

После запуска кода с помощью клавиши F5 или вручную мы получим результаты, как показано ниже.

Динамический Массив

В этом типе массива длина массива заранее не определяется заранее.

Код:

 Sub Dynamic_Example () Dim ArrayType () в качестве варианта ReDim ArrayType (3) ArrayType (1) = "Мое имя" ArrayType (2) = "is" ArrayType (3) = "Клетки Excel" (1, 1) .Value = ArrayType (1) Ячейки (1, 2). Значение = ArrayType (2) Ячейки (1, 3). Значение = ArrayType (3) End Sub 

В этом типе массива данных есть вариант, а длина здесь не определяется. После объявления переменной я присвоил длину массива с помощью функции ReDim . В этот массив будут вставлены следующие значения: Ячейка A1 = Мое имя, Ячейка B1 = есть, Ячейка C1 = Excel.

Одномерный массив

В этом типе массива длина определяется, но в одном измерении это работает.

Код:

 Sub One_Dimensional () Dim OneDimension (от 1 до 3) в виде строки OneDimension (1) = 40 OneDimension (2) = 50 OneDimension (3) = 15 End Sub 

Показать эти значения в окне сообщения VBA.

Код:

 Sub One_Dimensional () Dim OneDimension (от 1 до 3) как строковое OneDimension (1) = 40 OneDimension (2) = 50 OneDimension (3) = 15 MsgBox OneDimension (1) & ", " & OneDimension (2) & ", " & OneDimension (3) End Sub 

Запустите этот код, используя клавишу F5 или вручную, и мы получим следующий результат.

Двумерный массив

В этом типе массива длина определяется в двух измерениях, и это работает.

Код:

 Sub Two_Dimensional () Dim TwoDimension (1 To 2, 1 To 2) как Long Dim i Как целое число Dim j As Integer TwoDimension (1, 2) = 40 TwoDimension (2, 1) = 50 TwoDimension (1, 1) = 15 TwoDimension (2, 2) = 10 End Sub 

Теперь сохранить эти значения в ячейках кода ниже.

Код:

 Sub Two_Dimensional () Dim TwoDimension (1 To 2, 1 To 2) As Long Dim i Как целое число Dim j As Integer TwoDimension (1, 2) = 40 TwoDimension (2, 1) = 50 TwoDimension (1, 1) = 15 TwoDimension (2, 2) = 10 Для i = 1 To 2 Для j = 1 To 2 Ячейки (i, j) = TwoDimension (i, j) Next j Next i End Sub 

Это будет хранить данные, как показано ниже.

Многомерный массив

В этом типе массива длина определяется, но в многомерном она работает.

Код:

 Sub Multi_Dimensional () Dim TwoDimension (от 1 до 3, от 1 до 2) как длинный Dim i как целое число Dim j как целое MultiDimension (1, 1) = 15 MultiDimension (1, 2) = 40 MultiDimension (2, 1) = 50 MultiDimension (2, 2) = 10 Многомерный (3, 1) = 98 Многомерный (3, 2) = 54 

Если вы посмотрите на приведенный выше код, во-первых, я объявил массив от 1 до 3, а затем от 1 до 2. Это означает, что когда я пишу массив, во-первых, я могу использовать только от 1 до 3 чисел, но во втором месте я могу использовать только От 1 до 2, а не от 1 до 3.

Используя Loop, мы можем вставлять значения в ячейки. Я использовал две петли для многомерного массива.

Код:

 Sub Multi_Dimensional () Dim TwoDimension (от 1 до 3, от 1 до 2) как длинный Dim i как целое число Dim j как целое MultiDimension (1, 1) = 15 MultiDimension (1, 2) = 40 MultiDimension (2, 1) = 50 MultiDimension (2, 2) = 10 MultiDimension (3, 1) = 98 MultiDimension (3, 2) = 54 Для i = 1 To 3 Для j = 1 To 2 Ячейки (i, j) = MultiDimension (i, j) Далее j Далее я End Sub 

После запуска кода с помощью клавиши F5 или вручную мы получим результаты, как показано ниже.

То, что нужно запомнить

  • Массив будет считать значения с нуля, а не с 1.
  • Массив (0, 0) означает первый столбец первого ряда.
  • Этот файл макроса Excel необходимо сохранить как книгу с поддержкой макросов.
  • В случае динамического массива нам нужно присвоить значение массива с помощью функции REDIM в VBA.

Рекомендуемые статьи

Это было руководство к массивам VBA. Здесь мы обсудили типы массивов в VBA и как использовать массивы Excel VBA вместе с некоторыми практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

  1. НАЙТИ функцию в Excel с примерами
  2. Что такое функция VBA в Excel?
  3. Руководство по VBA Range Object
  4. Как использовать функцию VBA VLOOKUP?

Категория: