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

  1. 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.
  2. 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.
  3. 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
  1. Deklarál egy arrayName nevű tömbváltozót, amelynek mérete n és adattípusa. A méret a tömb által tárolható elemek számát jelenti.

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
  1. Az elemek számának megadása nélkül deklarál egy arrayName nevű tömbváltozót
Redim arrayName(4)
  1. Megadja a tömb méretét a tömb meghatározása után.

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

  1. Nyisd ki Microsoft Excel
  2. 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

  1. Adjon hozzá egy parancsgombot a laphoz

Használja a tömböt az Excel VBA-ban

  1. Állítsa be a name tulajdonságot cmdLoadBeverages értékre
  2. Á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

Használja a tömböt az Excel VBA-ban

3. lépés – Mentse el a fájlt

  1. Kattintson a Mentés másként gombra
  2. Válassza az Excel Makró-kompatibilis munkafüzetet (*.xlsm) az alábbi képen látható módon

Használja a tömböt az Excel VBA-ban

4. lépés – Írja be a kódot

Most megírjuk az alkalmazásunk kódját

  1. Kattintson a jobb gombbal az Italok betöltése gombra, és válassza ki a nézet kódot
  2. 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
  • Egy Drinks nevű tömbváltozót deklarál. Az első tömb indexe 1, az utolsó tömb indexe 4.
Italok (1) = „Pepsi”
  • A Pepsi értéket rendeli az első tömbelemhez. A másik hasonló kód ugyanezt teszi a tömb többi eleméhez.
Sheet1.Cells(1, 1).Value = "Kedvenc italaim."
  • A My Favourite Beverages értéket írja az A1 cellacímbe. A Sheet1 a lapra, a Cells(1,1) pedig az 1. sorszámra és az 1. oszlopra (B) hivatkozik.
Lap1.Cellák(2, 1).Érték = Italok(1)
  • Az 1-es indexű tömbelem értékét az 1. oszlop második sorába írja

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)

Alkalmazás tesztelése Excel VBA-ban

Kattintson az Italok betöltése gombra

A következő eredményeket kapja

Alkalmazás tesztelése Excel VBA-ban

Töltse le a fenti kódot tartalmazó Excelt

Töltse le a fenti Excel kódot

Összegzésként

  1. A tömb egy olyan változó, amely egynél több értéket képes tárolni
  2. Excel VBA támogatja a statikus és dinamikus tömböket
  3. 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.