Excel VBA масиви

Excel VBA Array не е нищо друго освен променлива, която може да съдържа същия тип данни. Масивът е група от променлива, която може да съхранява повече от една променлива. Името на променливата ще бъде същото, но може да съдържа различни стойности в една променлива. VBA масив е тип променлива, която се използва за съхраняване на списъци с данни от същия тип.

Ако имаме 5 клетки, които държат числа, трябва да декларираме 5 променливи, за да държим 5 различни числа в диапазона. Но с помощта на масив можем да задържим 5 различни стойности в самата променлива.

Как да използвате Excel VBA масиви?

Нека разберем как да използваме Excel VBA Arrays и техните типове с някои примери.

Можете да изтеглите този шаблон на VBA Arrays Excel тук - VBA Arrays Excel шаблон

Пример №1

Разгледайте по-долу примера. X е променлива, която съдържа типа данни на цяло число.

Код:

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

Сега задайте стойност на 1 на декларираната променлива x.

Нека вмъкнем стойността 1 в клетката А1.

Код:

 Sub Array_Example1 () Dim x As Integer x = 1 Обхват ("A1"). Стойност = x 
 Край Sub 

Стойността x е равна на 1 и в диапазона, A1 стойността ще бъде вмъкната като стойност на x, т.е. стойността на x е 1. Сега стартирайте кода, като използвате клавиша F5 или ръчно, за да видите резултатите.

В горния пример x съдържа само една променлива, която е всичко. Но ако искам да вмъкна 5 последователни числа с помощта на единичната променлива, трябва да използвам променлива тип масив, която може да съдържа много стойности на променливи в едно име на променлива.

Пример №2

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

Код:

 Sub Array_Example () Dim x (1 to 5) As long, i As Integer End Sub 

След това назначих стойностите на всяка променлива. X (1) = 20 означава, че първата променлива трябва да е равна на стойността на 20. X (2) = 25 означава, че втората променлива трябва да е равна на стойността на 25 и така нататък.

Код:

 Sub Array_Example () Dim x (1 to 5) As Long, i As Integer x (1) = 20 x (2) = 25 x (3) = 44 x (4) = 78 x (5) = 96 End Sub 

По-късно декларирах още една променлива, наречена „I“, това е вторият тип на променлива и съдържа тип данни от цяло число .

В следващата стъпка аз приложих FOR цикли, за да вмъкна присвоени числа към масива в първата колона. Поставих стойността на променливата i на 1 и съм инструктирал цикъла да се изпълнява от 1 до 5 пъти. Когато цикълът работи за първи път, стойността ще бъде равна на 1. CELLS (I, 1). Стойност = x (i) това означава, че за първи път i е равно на 1, т.е. CELLS (1, 1). Стойност = x (1), в първия ред първа колона (клетка A1) стойността ще бъде стойността на първия масив ( x (1) ), т.е. 20.

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

Код:

 Sub Array_Example () Dim x (1 to 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) .Value = x (i) Next i End Sub 

Подобно на това, когато циклите продължават да работят, стойностите ще се променят. Когато цикълът, който се изпълнява за трети път, стойността на клетката A3 ще бъде 44, стойността на четвърти път в цикъл A4 стойността на клетката ще бъде 78, когато циклите се изпълняват за последно време или стойността на клетката A5 за пети път ще бъде 96.

След като стартираме кода с помощта на клавиша F5 или ръчно, ще получим резултати, както е показано по-долу.

Видове масиви в Excel

Масивите имат различни видове в VBA. Има пет вида масиви, налични в excel.

  • Статичен масив
  • Динамичен масив
  • Едномерен масив
  • Двуизмерен масив
  • Многоизмерен масив

Статичен масив

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

Код:

 Sub Static_Example () Dim ArrayType (1 до 3) като Integer ArrayType (1) = 0 ArrayType (2) = 1 ArrayType (3) = 2 клетки (1, 1) .Value = 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) = "е" ArrayType (3) = "Excel" клетки (1, 1) .Value = ArrayType (1) Клетки (1, 2) .Value = ArrayType (2) Cells (1, 3) .Value = ArrayType (3) End Sub 

В този тип данни за масива е Variant и дължината не се определя тук. След деклариране на променливата назначих дължината на масива с помощта на функция ReDim . Този масив ще вмъкне стойностите като тази клетка A1 = Моето име, клетка B1 = е, Cell C1 = Excel.

Едномерен масив

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

Код:

 Sub One_Dim dimension () Dim OneDimension (1 до 3) като String OneDimension (1) = 40 OneDimension (2) = 50 OneDimension (3) = 15 End Sub 

Покажете тези стойности в полето за съобщения на VBA.

Код:

 Под One_Dim dimension () Dim OneDimension (1 до 3) като String OneDimension (1) = 40 OneDimension (2) = 50 OneDimension (3) = 15 MsgBox OneDimension (1) & ", " & OneDimension (2) & ", " & OneDimension (3) Край Sub 

Изпълнете този код с помощта на клавиша F5 или ръчно и ще получите следния резултат.

Двуизмерен масив

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

Код:

 Под-двуизмерно () дим двуизмерно (1 до 2, 1 до 2) толкова дълго дим и като цяло число дим като цяло число двуизмерно (1, 2) = 40 двуизмерно (2, 1) = 50 двуизмерно (1, 1) = 15 двуизмерно (2, 2) = 10 Крайна подм 

Сега, за да съхранявате тези стойности в клетките под кода.

Код:

 Под-двуизмерно () дим двуизмерно (1 до 2, 1 до 2) толкова дълго дим и като цяло число дим като цяло число двуизмерно (1, 2) = 40 двуизмерно (2, 1) = 50 двуизмерно (1, 1) = 15 двуизмерно (2, 2) = 10 За i = 1 До 2 За j = 1 До 2 Клетки (i, j) = TwoDimension (i, j) Next j Next i End Sub 

Това ще съхранява данните като по-долу.

Многоизмерен масив

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

Код:

 Sub Multi_Dimмер ( (2, 2) = 10 MultiDimension (3, 1) = 98 MultiDimension (3, 2) = 54 

Ако погледнете горния код първо, аз декларирах масива като 1 до 3 и след това 1 до 2. Това означава, че когато пиша масива първо, мога да използвам само 1 до 3 числа, но във второто пространство, мога да използвам само 1 до 2 не 1 до 3.

С помощта на Loop можем да вмъкнем стойности в клетки. Използвал съм два бримки за многоизмерен масив.

Код:

 Sub Multi_Dimмер ( (2, 2) = 10 MultiDimension (3, 1) = 98 MultiDimension (3, 2) = 54 За i = 1 до 3 За j = 1 До 2 клетки (i, j) = MultiDimension (i, j) Напред j Напред i End Sub 

След стартиране на кода с помощта на клавиша F5 или ръчно, ще получим резултати, както е показано по-долу.

Неща, които трябва да запомните

  • Масивът ще отчита стойностите от нула, а не от 1.
  • Масив (0, 0) означава първата колона от първия ред.
  • Този отличен макро файл трябва да бъде запазен като работна книга с активиран макрос.
  • В случай на динамичен масив, трябва да зададем стойността на масива, като използваме REDIM функция в VBA.

Препоръчителни статии

Това е ръководство за VBA масиви. Тук обсъдихме Видове масиви във VBA и как да използваме Excel VBA Arrays, заедно с някои практически примери и свалящ се шаблон на excel. Можете да разгледате и другите ни предложени статии -

  1. НАМЕРЕТЕ Функцията в Excel с примери
  2. Какво е VBA функция в Excel?
  3. Ръководство за обект VBA Range
  4. Как да използвате VBA VLOOKUP функция?

Категория: