Excel VBA tömbök
Az Excel VBA tömb nem más, mint olyan változó, amely ugyanazt az adattípust képes tárolni. A tömb egy változó olyan csoportja, amely egynél több változót tárolhat. A változó neve azonos lesz, de különböző értékeket képes tárolni egyetlen változóban. A VBA tömb olyan típusú változó, amelyet azonos típusú adatlisták tárolására használnak.
Ha 5 olyan cellánk van, amelyek számot tartanak, akkor 5 változót kell deklarálnunk, hogy 5 különböző számot tartsunk a tartományban. De tömb használatával 5 különböző értéket tudunk tartani egyetlen változóban.
Hogyan kell használni az Excel VBA tömböket?
Nézzünk meg néhány példával az Excel VBA tömbök és azok típusainak használatát.
A VBA tömbök Excel sablonját itt töltheti le - a VBA tömbök Excel sablonját itt töltheti le1. példa
Vessen egy pillantást az alábbi példára. X olyan változó, amely az egész adattípust tartalmazza.
Kód:
Sub Array_Example1 () tompítani x egész számként x = 1 Vége Sub
Most rendeljen hozzá 1 értéket a deklarált x változóhoz .
Helyezzük az 1-es értéket az A1 cellába.
Kód:
Al tömb_példa1 () tompítani x egész számként x = 1 tartomány ("A1") érték = x
Befejezés Sub
Az x érték egyenlő 1-gyel és az A1 tartományban az értéket x értékként illesztik be, azaz x értéke 1. Most futtassa a kódot F5 billentyűvel vagy manuálisan az eredmények megjelenítéséhez.
A fenti példában az x csak egy változót tart, az egész. De ha 5 egymást követő számot akarok beszúrni az egyetlen változó használatával, akkor azt a tömbváltozót kell használni, amely sok változó értékét képes tárolni egyetlen változó nevében.
2. példa
Most vessünk egy pillantást az alábbi példára. A változó neve x, az adattípusa LONG. De miközben maga deklarálta a változót, kinyitottam a konzolt, és megemlítettem az 1-5. Ez azt jelenti, hogy az x változó 5 különféle típusú értéket fog tárolni.
Kód:
Al tömb_példa () tompítani x (1–5) mindaddig, amíg egész szám Vége al
Ezután minden változóhoz hozzárendeltem az értékeket. X (1) = 20 azt jelenti, hogy az első változónak meg kell egyeznie a 20 értékével. X (2) = 25 azt jelenti, hogy a második változónak meg kell egyeznie a 25 értékével és így tovább.
Kód:
Altömb_Példa () tompított x (1–5), mindaddig, egészen egészben x (1) = 20 x (2) = 25 x (3) = 44 x (4) = 78 x (5) = 96
Később bejelentettem egy újabb „I” nevű változót, ez a változó második típusa, és egész szám adattípust tartalmaz.
A következő lépésben FOR-hurkokat alkalmaztam a hozzárendelt számok beillesztésére az első oszlop tömbjére. Az i változó értékét 1-re állítottam, és utasítottam a hurkot 1-5 alkalommal futtatni. Amikor a hurok először fut, az i érték 1 lesz. CELLS (I, 1). Érték = x (i), ez azt jelenti, hogy első alkalommal i egyenlő 1-vel, azaz CELLS (1, 1). Értékkel. = x (1), az első sor első oszlopában (A1 cell) az érték lesz az első tömb ( x (1) ) értéke, azaz 20.
Amikor a hurok másodszor fut, akkor az i érték 2 lesz, azaz CELLS (2, 1) .érték = x (2), a második sor első oszlopában (A2) az érték a második tömb ( x (2) ) lesz azaz 25.
Kód:
Al tömb_példa () tompított x (1–5) mindaddig, amíg egész szám x (1) = 20 x (2) = 25 x (3) = 44 x (4) = 78 x (5) = 96 i = 1–5 cella (i, 1). Érték = x (i) Következő i End Sub
Így, amikor a hurkok folyamatosan futnak, az értékek folyamatosan változnak. Ha a hurkok harmadik alkalommal futnak, akkor az A3 cella értéke 44 lesz, a negyedik alkalommal futó A4 cella értéke 78, ha a hurkok az utolsó alkalommal futnak, vagy az ötödik alkalommal az A5 cella értéke 96 lesz.
A kód futtatása után az F5 billentyűvel vagy manuálisan az alább látható módon kapunk eredményeket.
A tömbök típusai Excelben
A tömbök különféle típusai vannak a VBA-ban. Ötféle tömb van az Excelben elérhető.
- Statikus tömb
- Dinamikus tömb
- Egydimenziós tömb
- Kétdimenziós tömb
- Többdimenziós tömb
Statikus tömb
Az ilyen típusú tömb esetében a tömb hosszát előre meghatározzák, és állandó marad.
Kód:
Sub Static_Example () Következő ArrayType (1–3) egész számként ArrayType (1) = 0 ArrayType (2) = 1 ArrayType (3) = 2 cella (1, 1) .Érték = ArrayType (1) Cells (1, 2) .Value = ArrayType (2) Cells (1, 3) .Value = ArrayType (3) End Sub
A fenti kódban az ArrayType hosszúságát jóval előre meghatározzuk 1 és 3 között, az adattípus egész szám.
A kód futtatása után az F5 billentyűvel vagy manuálisan az alább látható módon kapunk eredményeket.
Dinamikus tömb
Az ilyen típusú tömb esetében a tömb hosszát előre nem határozzák meg előre.
Kód:
Sub Dynamic_Example () Dim ArrayType () Variant ReDim ArrayType (3) ArrayType (1) = "My Name" ArrayType (2) = "is" ArrayType (3) = "Excel" Cells (1, 1) .Value = ArrayType (1) Cellák (1, 2). Érték = ArrayType (2) Cellák (1, 3). Érték = ArrayType (3) End Sub
Az ilyen típusú tömbben az adatok változóak, és a hosszt itt nem határozzuk meg. A változó deklarálása után a tömb hosszát rendeltem ReDim funkcióval. Ez a tömb az alábbi cellákat fogja beilleszteni: A1 = Saját név, B1 cella =, Cella = Excel.
Egydimenziós tömb
Az ilyen típusú tömbben a hossz meghatározása megtörténik, de egy dimenzióban működik.
Kód:
Sub One_Dimensional () Dim OneDimension (1–3) Húzza OneDimension (1) = 40 OneDimension (2) = 50 OneDimension (3) = 15 Sub Sub vége
Mutassa meg ezeket az értékeket a VBA üzenetdobozban.
Kód:
Sub One_Dimensional () Dim OneDimension (1–3) Karakterláncként OneDimension (1) = 40 OneDimension (2) = 50 OneDimension (3) = 15 MsgBox OneDimension (1) & ", " & OneDimension (2) & ", " & OneDimension (3) End Sub
Futtassa ezt a kódot F5 billentyűvel vagy manuálisan, és a következő eredményt kapjuk.
Kétdimenziós tömb
Az ilyen típusú tömbökben a hosszúság két dimenzióban kerül meghatározásra, és működik.
Kód:
Sub Kétdimenziós () Homályos Kétdimenziós (1-től 2-ig, 1-ig 2) Mindaddig, amíg dim i, Egész egészként Dim j, Egész egészként, Kétdimenziós (1, 2) = 40 Kétdimenziós (2, 1) = 50 Kétdimenziós (1, 1) = 15 Kétdimenziós (2, 2) = 10 albekezdés vége
Most ezeket az értékeket tároljuk a kód alatti cellákban.
Kód:
Sub Kétdimenziós () Homályos Kétdimenziós (1-től 2-ig, 1-ig 2) Mindaddig, amíg dim i, Egész egészként Dim j, Egész egészként, Kétdimenziós (1, 2) = 40 Kétdimenziós (2, 1) = 50 Kétdimenziós (1, 1) = 15 Kétdimenziós (2, 2) = 10 i = 1-től 2-ig j = 1-től 2-ig cella (i, j) = Kétdimenzió (i, j) Következő j Következő i Vége Sub
Ez az adatokat az alábbiak szerint tárolja.
Többdimenziós tömb
Az ilyen típusú tömbökben meghatározzák a hosszúságot, de többdimenziós módon működnek.
Kód:
Sub multi_Dimensional () dim Kétdimenzió (1-től 3-ig, 1-ig 2-ig) egészen hosszú dim-ig egész egészként dim-nél egész egészként Többdimenziós (1, 1) = 15 Többdimenziós (1, 2) = 40 Többdimenziós (2, 1) = 50 Többdimenziós (2, 2) = 10 többdimenziós (3, 1) = 98 többdimenziós (3, 2) = 54
Ha először megnézzük a fenti kódot, akkor a tömböt 1-3-ig, majd 1-től 2-ig deklaráltam. Ez azt jelenti, hogy a tömb írásakor először csak 1-3 számot tudok használni, de a második szóközben csak 1 és 2 között nem 1 és 3 között.
A Loop segítségével beszúrhatjuk az értékeket a cellákba. Két hurkot használtam egy többdimenziós tömb számára.
Kód:
Sub multi_Dimensional () dim Kétdimenzió (1-től 3-ig, 1-ig 2-ig) egészen hosszú dim-ig egész egészként dim-nél egész egészként Többdimenziós (1, 1) = 15 Többdimenziós (1, 2) = 40 Többdimenziós (2, 1) = 50 Többdimenziós (2, 2) = 10 többdimenziós (3, 1) = 98 többdimenziós (3, 2) = 54 i = 1-től 3-ig j = 1-től 2-ig cella (i, j) = multidimenzió (i, j) következő j Következő i Sub Sub
A kód futtatása után az F5 billentyűvel vagy manuálisan az alább látható módon kapunk eredményeket.
Dolgok, amikre emlékezni kell
- Egy tömb az értékeket nulláról számolja, nem pedig 1-ből.
- A tömb (0, 0) az első sor első oszlopát jelenti.
- Ezt az excel makrofájlt makrokompatibilis munkafüzetként kell menteni.
- Dinamikus tömb esetén a tömb értékét a VBA REDIM függvényével kell hozzárendelni.
Ajánlott cikkek
Ez egy útmutató a VBA tömbökhöz. Itt megvitattuk a tömbök típusait a VBA-ban és az Excel VBA tömbök használatát, néhány gyakorlati példával és letölthető Excel sablonnal együtt. Megnézheti más javasolt cikkeinket -
- FIND funkció Excelben példákkal
- Mi az a VBA függvény az Excelben?
- Útmutató a VBA Range Object-hez
- Hogyan kell használni a VBA VLOOKUP funkciót?