Excel VBA tömbök: Mi az, hogyan kell használni és a tömbök típusai a VBA-ban
Mi az a VBA Array?
A tömb egynél több érték tárolására képes memóriahely. Az értékeknek azonos adattípusúnak kell lenniük. Tegyük fel, hogy kedvenc italainak listáját egyetlen változóban szeretné tárolni, ehhez használhatja a VBA tömböt.
Tömb használatával a kapcsolódó értékekre azonos néven hivatkozhat. Index vagy alsó index segítségével megkülönböztetheti őket egymástól. Az egyes értékekre az Excel VBA tömb elemeiként hivatkozunk. A 0 indextől a legmagasabb indexértékig szomszédosak.
Ez az oktatóanyag feltételezi, hogy használja Microsoft Excel verzió 2013. A tudás továbbra is vonatkozik a többi verzióra Microsoft Excel is.
Mik a tömbök előnyei?
Az alábbiakban bemutatunk néhány, a VBA tömbfüggvény által kínált előnyt
- Csoportosítsa a logikailag összefüggő adatokat – tegyük fel, hogy a tanulók listáját szeretné tárolni. Használhat egyetlen tömbváltozót, amelynek külön helyei vannak a tanulói kategóriáknak, pl. óvoda, általános, középiskola, középiskola stb.
- A tömbök megkönnyítik a karbantartható kód írását. Ugyanazon logikailag összefüggő adatok esetén lehetővé teszi egyetlen változó definiálását ahelyett, hogy egynél több változót definiálna.
- Jobb teljesítmény – a tömb meghatározása után gyorsabban lehet lekérni, rendezni és módosítani az adatokat.
Tömbtípusok a VBA-ban
A VBA kétféle tömböt támogat, nevezetesen;
- Statikus – Az ilyen típusú tömbök rögzített, előre meghatározott számú tárolható elemmel rendelkeznek. A statikus tömb adattípusának méretét nem lehet megváltoztatni. Ezek akkor hasznosak, ha olyan ismert entitásokkal szeretne dolgozni, mint a napok száma a héten, a nem stb.Például: Dim ArrayMonth(12) As String
- Dinamikus – Az ilyen típusú tömbökben nincs rögzített előre meghatározott számú tárolható elem. Ezek akkor hasznosak, ha olyan entitásokkal dolgozik, amelyek számát nem tudja előre meghatározni.Például: Dim ArrayMonth() As Variant
Szintaxis a tömbök deklarálásához
Statikus tömbök
A deklarálás szintaxisa STATIKUS a tömbök a következők:
Dim arrayName (n) as datatype
ITT,
Kód | Akció |
---|---|
Dim arrayName (n) adattípus |
|
Dinamikus tömbök
A deklarálás szintaxisa DINAMIKUS a tömbök a következők:
Dim arrayName() as datatype ReDim arrayName(4)
ITT,
Kód | Akció |
---|---|
Dim arrayName () adattípus |
|
Redim arrayName(4) |
|
Tömb méretei
Egy tömb lehet egydimenziós, kétdimenziós vagy többdimenziós.
- Egy dimenzió: Ebben a dimenzióban a tömb csak egy indexet használ. Például minden korosztályból számos ember.
- Két dimenzió: Ebben a dimenzióban a tömb két indexet használ. Például minden osztályban több tanuló. Ehhez minden osztályban osztályok száma és tanulólétszám szükséges
- Többdimenziós: Ebben a dimenzióban a tömb kettőnél több indexet használ. Például a nappali hőmérséklet. ( 30, 40, 20).
A tömb használata az Excel VBA-ban
Létrehozunk egy egyszerű alkalmazást. Ez az alkalmazás egy Excel-lapot tölt fel egy tömbváltozóból származó adatokkal. Ebben a VBA-tömb példájában a következő dolgokat fogjuk megtenni.
- Újat csinálni Microsoft Excel-munkafüzet, és mentse el Excel-makró-kompatibilis munkafüzetként (*.xlsm)
- Adjon hozzá egy parancsgombot a munkafüzethez
- Állítsa be a parancsgomb nevének és feliratának tulajdonságait
- Az Excel lapot feltöltő VBA programozása
Végezze el ezt a gyakorlatot lépésről lépésre,
1. lépés – Hozzon létre egy új munkafüzetet
- Nyisd ki Microsoft Excel
- Mentse az új munkafüzetet VBA Arrays.xlsm néven
2. lépés – Parancsgomb hozzáadása
Jegyzet: Ez a rész feltételezi, hogy ismeri az excel felület létrehozásának folyamatát. Ha nem ismeri, olvassa el az oktatóanyagot VBA Excel űrlapvezérlő és ActiveX-vezérlő. Megmutatja, hogyan kell létrehozni a felületet
- Adjon hozzá egy parancsgombot a laphoz
- Állítsa be a name tulajdonságot cmdLoadBeverages értékre
- Állítsa be a felirat tulajdonságot Italok betöltése értékre
A grafikus felhasználói felületnek most a következőnek kell lennie
3. lépés – Mentse el a fájlt
- Kattintson a Mentés másként gombra
- Válassza az Excel Makró-kompatibilis munkafüzetet (*.xlsm) az alábbi képen látható módon
4. lépés – Írja be a kódot
Most megírjuk az alkalmazásunk kódját
- Kattintson a jobb gombbal az Italok betöltése gombra, és válassza ki a nézet kódot
- Adja hozzá a következő kódot a cmdLoadBeverages kattintási eseményéhez
Private Sub cmdLoadBeverages_Click() Dim Drinks(1 To 4) As String Drinks(1) = "Pepsi" Drinks(2) = "Coke" Drinks(3) = "Fanta" Drinks(4) = "Juice" Sheet1.Cells(1, 1).Value = "My Favorite Beverages" Sheet1.Cells(2, 1).Value = Drinks(1) Sheet1.Cells(3, 1).Value = Drinks(2) Sheet1.Cells(4, 1).Value = Drinks(3) Sheet1.Cells(5, 1).Value = Drinks(4) End Sub
ITT,
Kód | Akció |
---|---|
Dim Drinks (1-től 4-ig) Stringként |
|
Italok (1) = „Pepsi” |
|
Sheet1.Cells(1, 1).Value = "Kedvenc italaim." |
|
Lap1.Cellák(2, 1).Érték = Italok(1) |
|
Alkalmazásunk tesztelése
Válassza ki a fejlesztői lapot, és győződjön meg arról, hogy a Tervezési mód gomb ki van kapcsolva. A mutató az, hogy fehér lesz a háttere és nem színes (zöldes) háttér. (Lásd a képet lent)
Kattintson az Italok betöltése gombra
A következő eredményeket kapja
Töltse le a fenti kódot tartalmazó Excelt
Összegzésként
- A tömb egy olyan változó, amely egynél több értéket képes tárolni
- Excel VBA támogatja a statikus és dinamikus tömböket
- A tömbök megkönnyítik a karbantartható kód írását ahhoz képest, hogy sok változót deklarálnak a logikailag kapcsolódó adatokhoz.