Polia Excel VBA

Excel VBA Array nie je nič iné ako premenná, ktorá môže obsahovať rovnaký typ údajov. Pole je skupina premenných, ktorá môže uložiť viac ako jednu premennú. Názov premennej bude rovnaký, ale môže obsahovať rôzne hodnoty v jednej premennej. Pole VBA je typ premennej, ktorá sa používa na ukladanie zoznamov údajov rovnakého typu.

Ak máme 5 buniek, ktoré držia čísla, musíme deklarovať 5 premenných, aby držali 5 rôznych čísel v rozsahu. Ale pomocou poľa môžeme držať 5 rôznych hodnôt v jednej premennej samotnej.

Ako používať polia Excel VBA?

Poďme pochopiť, ako používať Excel VBA polia a ich typy s niekoľkými príkladmi.

Túto šablónu aplikácie VBA Arrays Excel si môžete stiahnuť tu - šablónu VBA Arrays Excel

Príklad č. 1

Pozrite sa na príklad uvedený nižšie. X je premenná, ktorá uchováva dátový typ celého čísla.

kód:

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

Teraz deklarovanej premennej x priraďte hodnotu 1 .

Vložte hodnotu 1 do bunky A1.

kód:

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

Hodnota x sa rovná 1 a v rozsahu A1 bude hodnota vložená ako hodnota x, tj hodnota x je 1. Teraz spustite kód pomocou klávesu F5 alebo ručne, aby ste videli výsledky.

V uvedenom príklade x obsahuje iba jednu premennú, ktorá je všetko. Ale ak chcem vložiť 5 po sebe idúcich čísel pomocou jedinej premennej, musím použiť premennú typu array, ktorá dokáže v jedinom názve premennej uchovávať veľa hodnôt premenných.

Príklad č. 2

Teraz si pozrite nasledujúci príklad. Názov premennej je x a typ údajov je DLHÝ. Pri deklarovaní samotnej premennej som však otvoril zátvorku a uviedol som 1 až 5. To znamená, že premenná x bude obsahovať 5 rôznych typov hodnôt.

kód:

 Sub Array_Example () Dim x (1 až 5) Tak dlho, aj ako celé číslo Sub 

Potom som priradil hodnoty každej premennej. X (1) = 20 znamená, že prvá premenná by sa mala rovnať hodnote 20. X (2) = 25 znamená, že druhá premenná by sa mala rovnať hodnote 25 atď.

kód:

 Príklad čiastkového poľa () Dim x (1 až 5) Ako dlho, i ako celé číslo x (1) = 20 x (2) = 25 x (3) = 44 x (4) = 78 x (5) = 96 koncových čiastkových 

Neskôr som vyhlásil ešte jednu premennú nazvanú „I“, jedná sa o druhý typ premennej a uchováva typ údajov celé číslo .

V ďalšom kroku som použil slučky FOR na vloženie priradených čísel do poľa v prvom stĺpci. Nastavil som hodnotu premennej i na 1 a dal som slučke pokyn, aby bežal 1 až 5 krát. Keď slučka beží prvýkrát, hodnota i sa bude rovnať 1. CELLS (I, 1) .value = x (i) to znamená, že prvýkrát sa i rovná 1, tj CELLS (1, 1) .value = x (1), v prvom riadku prvého stĺpca (bunka A1) bude hodnota prvou hodnotou poľa ( x (1) ), tj 20.

Keď slučka beží druhýkrát, hodnota i sa stáva 2, tj CELLS (2, 1) .val = x (2), v druhom riadku v prvom stĺpci (A2) bude hodnota druhou hodnotou v poli ( x (2) ) tj 25.

kód:

 Príklad čiastkového poľa () Dim x (1 až 5) Tak dlho, i ako celé číslo x (1) = 20 x (2) = 25 x (3) = 44 x (4) = 78 x (5) = 96 Pre i = 1 až 5 buniek (i, 1). Hodnota = x (i) Ďalej i End Sub 

Podobne, keď sa slučky pohybujú, hodnoty sa budú naďalej meniť. Keď slučky spustené po tretiu hodnotu A3 bunky budú 44, štvrtá časová slučka vykoná bunkovú hodnotu A4 78, keď slučky pre posledný čas alebo piaty čas budú mať hodnotu A5 96.

Po spustení kódu pomocou klávesu F5 alebo ručne získame výsledky, ako je uvedené nižšie.

Typy polí v Exceli

Polia majú vo VBA rôzne typy. K dispozícii je päť typov polí v Exceli.

  • Statické pole
  • Dynamic Array
  • Jednorozmerné pole
  • Dvojrozmerné pole
  • Viacrozmerné pole

Statické pole

V tomto type poľa je vopred stanovená dĺžka poľa a zostáva konštantná.

kód:

 Sub Static_Example () Dim ArrayType (1 až 3) ako celé číslo ArrayType (1) = 0 ArrayType (2) = 1 ArrayType (3) = 2 bunky (1, 1). Hodnota = ArrayType (1) Bunky (1, 2) .Value = ArrayType (2) Cells (1, 3) .Value = ArrayType (3) End Sub 

Vo vyššie uvedenom kóde sa dĺžka ArrayType určuje v dostatočnom predstihu ako 1 až 3 a typ údajov je celé číslo.

Po spustení kódu pomocou klávesu F5 alebo ručne získame výsledky, ako je uvedené nižšie.

Dynamic Array

V tomto type poľa nie je dĺžka poľa vopred stanovená vopred.

kód:

 Sub Dynamic_Example () Dim ArrayType () ako variant ReDim ArrayType (3) ArrayType (1) = "Moje meno" ArrayType (2) = "je" ArrayType (3) = "Excel" Bunky (1, 1). Hodnota = ArrayType (1) Bunky (1, 2). Hodnota = ArrayType (2) Bunky (1, 3). Hodnota = ArrayType (3) End Sub 

V tomto type údajov poľa je Variant a dĺžka tu nie je stanovená. Po deklarovaní premennej som pomocou funkcie ReDim priradil dĺžku poľa. Toto pole vloží hodnoty podobné tejto bunke A1 = Moje meno, Bunka B1 = je, Bunka C1 = Excel.

Jednorozmerné pole

V tomto type poľa sa určuje dĺžka, ale v jednej dimenzii to funguje.

kód:

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

Zobraziť túto hodnotu v okne správy VBA.

kód:

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

Spustite tento kód pomocou klávesu F5 alebo manuálne a získame nasledujúci výsledok.

Dvojrozmerné pole

V tomto type poľa sa dĺžka určuje v dvoch rozmeroch a funguje.

kód:

 Sub Two_Dimensional () Dim TwoDimension (1 to 2, 1 to 2) Tak dlho Dim i As Integer Dim j As Integer TwoDimension (1, 2) = 40 TwoDimension (2, 1) = 50 TwoDimension (1, 1) = 15 TwoDimension (2, 2) = 10 koncových sub 

Teraz uložte tieto hodnoty do buniek pod kódom.

kód:

 Sub Two_Dimensional () Dim TwoDimension (1 to 2, 1 to 2) Tak dlho Dim i As Integer Dim j As Integer TwoDimension (1, 2) = 40 TwoDimension (2, 1) = 50 TwoDimension (1, 1) = 15 TwoDimension (2, 2) = 10 pre i = 1 až 2 pre j = 1 až 2 bunky (i, j) = dvojrozmer (i, j) nasledujúce j ďalšie j ďalšie i koncové sub 

Údaje sa uložia, ako je uvedené nižšie.

Viacrozmerné pole

V tomto type poľa sa určuje dĺžka, ale vo viacrozmernom formáte to funguje.

kód:

 Sub Multi_Dimensional () Dim TwoDimension (1 až 3, 1 až 2) Tak dlho Dim i As Integer Dim j As Integer MultiDimension (1, 1) = 15 MultiDimension (1, 2) = 40 MultiDimension (2, 1) = 50 MultiDimension (2, 2) = 10 viacrozmerných (3, 1) = 98 viacrozmerných (3, 2) = 54 

Ak sa pozriete na vyššie uvedený kód, najprv som deklaroval pole ako 1 až 3 a potom 1 až 2. To znamená, že keď píšem pole, najskôr môžem použiť iba 1 až 3 čísla, ale v druhom priestore môžem použiť iba 1 až 2 nie 1 až 3.

Pomocou slučky môžeme vložiť hodnoty do buniek. Použil som dve slučky pre viacrozmerné pole.

kód:

 Sub Multi_Dimensional () Dim TwoDimension (1 až 3, 1 až 2) Tak dlho Dim i As Integer Dim j As Integer MultiDimension (1, 1) = 15 MultiDimension (1, 2) = 40 MultiDimension (2, 1) = 50 MultiDimension (2, 2) = 10 viacrozmerných (3, 1) = 98 viacrozmerných (3, 2) = 54 pre i = 1 až 3 pre j = 1 až 2 bunky (i, j) = viacrozmerné (i, j) ďalšie j Ďalej i End Sub 

Po spustení kódu pomocou klávesu F5 alebo ručne získame výsledky, ako je uvedené nižšie.

Čo je potrebné pamätať

  • Pole bude počítať hodnoty od nuly, nie od 1.
  • Pole (0, 0) znamená prvý stĺpec v prvom riadku.
  • Tento vynikajúci súbor makra je potrebné uložiť ako zošit so zapnutým makrom.
  • V prípade dynamického poľa musíme priradiť hodnotu poľa pomocou funkcie REDIM vo VBA.

Odporúčané články

Toto bol sprievodca VBA Arrays. Tu sme diskutovali o typoch polí vo VBA a o tom, ako používať Excel VBA sady spolu s niekoľkými praktickými príkladmi a stiahnuteľnou vynikajúcou šablónou. Môžete si tiež prečítať naše ďalšie navrhované články -

  1. NÁJDETE funkciu v Exceli s príkladmi
  2. Čo je funkcia VBA v programe Excel?
  3. Sprievodca objektom rozsahu VBA
  4. Ako používať funkciu VBA VLOOKUP?

Kategórie: