Pole VBA aplikace Excel

Excel VBA Array není nic jiného než proměnná, která pojme stejný typ dat. Pole je skupina proměnné, která může uložit více než jednu proměnnou. Název proměnné bude stejný, ale v jedné proměnné může obsahovat různé hodnoty. Pole VBA je typ proměnné, který se používá k ukládání seznamů dat stejného typu.

Pokud máme 5 buněk, které drží čísla, musíme deklarovat 5 proměnných, které mají v rozsahu 5 různých čísel. Ale pomocí pole můžeme držet 5 různých hodnot v jedné proměnné samotné.

Jak používat Excel VBA pole?

Podívejme se, jak používat Excel VBA Arrays a jejich typy s několika příklady.

Tuto šablonu VBA Arrays Excel si můžete stáhnout zde - VBA Arrays Excel Template

Příklad č. 1

Podívejte se na níže uvedený příklad. X je proměnná, která obsahuje datový typ celého čísla.

Kód:

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

Nyní přiřaďte deklarované proměnné x hodnotu 1 .

Vložte hodnotu 1 do buňky A1.

Kód:

 Sub Array_Example1 () Dim x As Integer x = 1 Range ("A1"). Hodnota = x 
 End Sub 

Hodnota x se rovná 1 a v rozsahu A1 bude hodnota vložena jako hodnota x, tj. Hodnota x je 1. Nyní spusťte kód pomocí klávesy F5 nebo ručně, abyste viděli výsledky.

Ve výše uvedeném příkladu x obsahuje pouze jednu proměnnou, která je vše. Ale pokud chci vložit 5 po sobě jdoucích čísel pomocí jediné proměnné, musím použít proměnnou typu pole, která dokáže pojmout mnoho hodnot proměnných v jednom názvu proměnné.

Příklad č. 2

Nyní se podívejte na níže uvedený příklad. Název proměnné je x a typ dat je DLOUHÝ. Ale při deklaraci samotné proměnné jsem otevřel závorku a zmínil jsem 1 až 5. To znamená, že proměnná x bude obsahovat 5 různých typů hodnot.

Kód:

 Sub Array_Example () Dim x (1 až 5) Tak dlouho, i jako Integer End Sub 

Poté jsem každé proměnné přiřadil hodnoty. X (1) = 20 znamená, že první proměnná by se měla rovnat hodnotě 20. X (2) = 25 znamená, že druhá proměnná by měla být rovna hodnotě 25 atd.

Kód:

 Sub Array_Example () Dim x (1 až 5) Tak dlouho, i jako Integer x (1) = 20 x (2) = 25 x (3) = 44 x (4) = 78 x (5) = 96 End Sub 

Později jsem prohlásil ještě jednu proměnnou nazvanou „I“, jedná se o druhý typ proměnné a uchovává datový typ celého čísla .

V dalším kroku jsem použil smyčky FOR k vložení přiřazených čísel do pole v prvním sloupci. Nastavil jsem hodnotu proměnné i na 1 a dal jsem smyčce pokyn, aby běžel 1 až 5krát. Když smyčka běží poprvé, hodnota i se bude rovnat 1. CELLS (I, 1) .value = x (i) to znamená, že poprvé se i rovná 1, tj. CELLS (1, 1) .value = x (1), v prvním řádku prvního sloupce (buňka A1) bude hodnota první hodnotou pole ( x (1) ), tj. 20.

Když smyčka běží podruhé, hodnota i se stává 2, tj. CELLS (2, 1) .value = x (2), ve druhém řádku v prvním sloupci (A2) bude hodnota druhou hodnotou pole ( x (2) ) tj. 25.

Kód:

 Příklad dílčího pole () Dim x (1 až 5) Jak dlouhý, i jako celé číslo x (1) = 20 x (2) = 25 x (3) = 44 x (4) = 78 x (5) = 96 Pro i = 1 až 5 buněk (i, 1). Hodnota = x (i) Další i Konec Sub 

Podobně, když smyčky stále běží, hodnoty se budou neustále měnit. Když smyčky spuštěné potřetí budou mít hodnotu buňky A3 44, bude ve čtvrté časové smyčce spuštěna hodnota buňky A4 78, když smyčky spuštěné pro konečný čas nebo pátý čas buňky A5 budou 96.

Po spuštění kódu pomocí klávesy F5 nebo ručně získáme výsledky, jak je uvedeno níže.

Typy polí v Excelu

Pole mají různé typy VBA. V Excelu je k dispozici pět typů polí.

  • Statické pole
  • Dynamic Array
  • Jedno dimenzionální pole
  • Dvourozměrné pole
  • Vícerozměrné pole

Statické pole

V tomto typu pole je délka pole předem stanovena a zůstává konstantní.

Kód:

 Sub Static_Example () Dim ArrayType (1 až 3) jako Integer ArrayType (1) = 0 ArrayType (2) = 1 ArrayType (3) = 2 Buňky (1, 1). Hodnota = ArrayType (1) Buňky (1, 2) . Hodnota = ArrayType (2) Buňky (1, 3). Hodnota = ArrayType (3) End Sub 

Ve výše uvedeném kódu je délka ArrayType stanovena s dostatečným předstihem jako 1 až 3 a typ dat je Integer.

Po spuštění kódu pomocí klávesy F5 nebo ručně získáme výsledky, jak je uvedeno níže.

Dynamic Array

V tomto typu pole není délka pole předem předem stanovena.

Kód:

 Sub Dynamic_Example () Dim ArrayType () jako varianta ReDim ArrayType (3) ArrayType (1) = "Moje jméno" ArrayType (2) = "je" ArrayType (3) = "Excel" Buňky (1, 1). Hodnota = ArrayType (1) Buňky (1, 2). Hodnota = ArrayType (2) Buňky (1, 3). Hodnota = ArrayType (3) End Sub 

V tomto typu dat pole je Variant a délka zde není stanovena. Po deklaraci proměnné jsem pomocí funkce ReDim přiřadil délku pole. Toto pole vloží hodnoty jako tato buňka A1 = Moje jméno, buňka B1 = je, buňka C1 = Excel.

Jedno dimenzionální pole

V tomto typu pole se určuje délka, ale v jedné dimenzi to funguje.

Kód:

 Sub One_Dimensional () Dim OneDimension (1 až 3) jako String OneDimension (1) = 40 OneDimension (2) = 50 OneDimension (3) = 15 End Sub 

Zobrazit tuto hodnotu ve schránce VBA.

Kód:

 Sub One_Dimensional () Dim OneDimension (1 až 3) jako String OneDimension (1) = 40 OneDimension (2) = 50 OneDimension (3) = 15 MsgBox OneDimension (1) & ", " & OneDimension (2) & ", " & OneDimension (3) End Sub 

Spusťte tento kód pomocí klávesy F5 nebo ručně a získáme následující výsledek.

Dvourozměrné pole

V tomto typu pole je délka určena ve dvou rozměrech a funguje.

Kód:

 Sub Two_Dimensional () Dim TwoDimension (1 až 2, 1 až 2) Jak dlouhé Dim i As Integer Dim j Jako Integer TwoDimension (1, 2) = 40 TwoDimension (2, 1) = 50 TwoDimension (1, 1) = 15 TwoDimension (2, 2) = 10 koncových sub 

Nyní uložte tyto hodnoty do buněk pod kódem.

Kód:

 Sub Two_Dimensional () Dim TwoDimension (1 až 2, 1 až 2) Jak dlouhé Dim i As Integer Dim j Jako Integer TwoDimension (1, 2) = 40 TwoDimension (2, 1) = 50 TwoDimension (1, 1) = 15 TwoDimension (2, 2) = 10 Pro i = 1 až 2 Pro j = 1 až 2 Buňky (i, j) = TwoDimension (i, j) Další j Další i Konec Sub 

Tím se uloží data jako níže.

Vícerozměrné pole

V tomto typu pole je stanovena délka, ale ve vícerozměrném formátu to funguje.

Kód:

 Sub Multi_Dimensional () Dim TwoDimension (1 až 3, 1 až 2) As Long Dim i As Integer Dim j Jako Integer MultiDimension (1, 1) = 15 MultiDimension (1, 2) = 40 MultiDimension (2, 1) = 50 MultiDimension (2, 2) = 10 vícerozměrných (3, 1) = 98 vícerozměrných (3, 2) = 54 

Pokud se podíváte na výše uvedený kód, nejprve jsem deklaroval pole jako 1 až 3 a pak 1 až 2. To znamená, že když píšu pole, nejprve mohu použít pouze 1 až 3 čísla, ale ve druhém prostoru mohu použít pouze 1 až 2 ne 1 až 3.

Pomocí smyčky můžeme vložit hodnoty do buněk. Pro vícerozměrné pole jsem použil dvě smyčky.

Kód:

 Sub Multi_Dimensional () Dim TwoDimension (1 až 3, 1 až 2) As Long Dim i As Integer Dim j Jako Integer MultiDimension (1, 1) = 15 MultiDimension (1, 2) = 40 MultiDimension (2, 1) = 50 MultiDimension (2, 2) = 10 vícerozměrných (3, 1) = 98 vícerozměrných (3, 2) = 54 pro i = 1 až 3 pro j = 1 až 2 buňky (i, j) = vícerozměrné (i, j) další j Další i End Sub 

Po spuštění kódu pomocí klávesy F5 nebo ručně získáme výsledky, jak je uvedeno níže.

Co si pamatovat

  • Pole bude počítat hodnoty od nuly, nikoli od 1.
  • Pole (0, 0) znamená první sloupec prvního řádku.
  • Tento vynikající soubor makra je třeba uložit jako sešit s povoleným makrem.
  • V případě dynamického pole musíme hodnotu pole přiřadit pomocí funkce REDIM ve VBA.

Doporučené články

Toto byl průvodce VBA Arrays. Zde jsme diskutovali Typy polí ve VBA a jak používat Excel VBA Arrays spolu s několika praktickými příklady a stahovatelnou excel šablonou. Můžete si také prohlédnout naše další doporučené články -

  1. NAJDETE funkci v Excelu s příklady
  2. Co je funkce VBA v aplikaci Excel?
  3. Průvodce po objektech VBA Range
  4. Jak používat funkci VBA VLOOKUP?

Kategorie: