/ / Dynamic Array az Excel VBA-ban

Dinamikus tömb Excel VBA-ban

Ha a tömb mérete nő, és nem szeretné megjavítani a tömb méretét, használhatja a ReDim kulcsszó. Excel VBA majd automatikusan módosítja a tömb méretét.

Adjon hozzá néhány számot az A oszlophoz.

Dinamikus tömb Excel VBA-ban

Helyezzen egy parancsgombot a munkalapra, és adja hozzá a következő kódsorokat:

1. Először deklaráljuk a tömb nevű számokat. Szintén deklarálj két változót az Integer típusból. Egy megnevezett méretű és egy nevű i.

Dim numbers() As Integer, size As Integer, i As Integer

Megjegyzés: a tömb még nincs méretben. számok, méretek és i véletlenszerűen vannak kiválasztva, bármelyik nevet használhatja. Ne feledje, hogy ezekre a nevekre utal a kód többi részében.

Ezután meghatározzuk a tömb méretét és tároljuk a változó méretben. Ehhez használhatja a CountA függvényt. Adja hozzá a következő kódot:

size = WorksheetFunction.CountA(Worksheets(1).Columns(1))

3. Most ismerjük a tömb méretét és újraértékeljük. Adja hozzá a következő kódot:

ReDim numbers(size)

4. Következő, inicializáljuk a tömb minden egyes elemét. Hurokot használunk.

For i = 1 To size
    numbers(i) = Cells(i, 1).Value
Next i

5. A tömb utolsó elemét MsgBox segítségével jelenítjük meg.

MsgBox numbers(size)

6. Lépjen ki a Visual Basic Editor programból, és kattintson a parancs gombra a lapon.

Eredmény:

A tömb utolsó eleme

7. Most, hogy világosan megértsük miért hívják ezt dinamikus tömbnek, adjon hozzá egy számot az A oszlophoz.

Szám hozzáadása

8. Kattintson újra a parancs gombra.

Dinamikus tömb eredménye

Következtetés: Az Excel VBA automatikusan megváltoztatta a dinamikus tömb méretét.

9. Ha a ReDim kulcsszót használja, törli a tömbben jelenleg tárolt adatokat. Például adja hozzá a következő kódsorokat a korábban létrehozott kódhoz:

ReDim numbers(3)
MsgBox numbers(1)

Eredmény:

Megőrzés nélkül

A tömb üres.

10. Ha meg szeretné őrizni a meglévő tömbben lévő adatokat, amikor újratervezi, használja a Kulcsszó megőrzését.

ReDim Preserve numbers(3)
MsgBox numbers(1)

Eredmény:

A megőrzéssel

Szintén olvasható: