VBA dinamikus tömb (Redim & Redim Preserve)

Ez az oktatóanyag bemutatja a dinamikus tömbök (redim és redim megőrzés) használatát a VBA -ban.

Dinamikus tömb

Dinamikus tömbök tömbök, amelyek megváltoztathatják a méreteket (szemben statikus tömbök, amelyek statikusak).

Dinamikus tömb deklarálásához deklarálja a tömböt, de hagyja ki a tömb méretét:

1 Dim strNames () karakterláncként

Ezután, mielőtt értékeket rendelhet a tömbhöz, a ReDim utasítással kell beállítania a tömböt a kívánt méretre:

1 ReDim strNames (1-3)

Most, amikor bármikor meg akarja változtatni a tömb méretét, egyszerűen használja a ReDim -et (vagy a ReDim Preserve -t, ahogy az alábbiakban megtudjuk).

Dinamikus variáns tömbök

Megjegyzés: A variáns tömbök kissé eltérnek egymástól. A változatos tömböknél nem kell beállítani a tömb méretét a ReDim segítségével az értékek hozzárendelése előtt.

12345678 Sub TestArray ()'deklarálja a változótDim varNames () Változatként'töltse ki a tömbötvarNames () = Array ("Fred", "Wilma", "Barney", "Betty")'adja vissza az értékeketMsgBox csatlakozás (varNames, ",")End Sub

Redim vs Redim Preserve

Az ReDim az utasítás átméretezi a tömböt, klíring minden létező érték.

Az ReDim Preserve az utasítás átméretezi a tömböt, tartása („Megőrzése”) minden létező értéket.

A ReDim használata

A gyakorlatban a tömb átméretezése ReDim segítségével így néz ki:

123456789101112 Sub TestReDim ()'deklarálja a karakterlánc -tömbötDim strNames () karakterláncként'méretezze át a karakterlánc tömbjét, hogy 3 értéket tudjon tárolniReDim strNames (1-3)'töltse fel a tömböt 3 névvelstrNames (1) = "Mel"strNames (2) = "Steve"strNames (3) = "Bob"'mutassa meg az eredményt a közvetlen ablakbanHibakeresés. Nyomtatási csatlakozás (strNames, vbCrLf)End Sub

A ReDim Preserve használata

Ebben a példában a ReDim -et fogjuk használni a kezdeti dinamikus tömb beállításához, majd a ReDim Preserve -t a tömb átméretezéséhez, tartása az eredeti értékek:

1234567891011121314151617 Sub TestReDim ()'deklarálja a karakterlánc -tömbötDim strNames () karakterláncként'méretezze át a karakterlánc tömbjét, hogy 3 értéket tudjon tárolniReDim strNames (1-3)'töltse ki a tömbötstrNames (1) = "Mel"strNames (2) = "Steve"strNames (3) = "Bob"'mutassa meg az eredményt a közvetlen ablakbanHibakeresés. Nyomtatási csatlakozás (strNames, vbCrLf)redim, de mentse az adatokatReDim Preserve strNames (1-4)strNames (4) = "Fred"'mutassa meg az eredményt a közvetlen ablakbanHibakeresés. Nyomtatási csatlakozás (strNames, vbCrLf)End Sub

Ha nem használja a TARTÁS utasítást, elveszítené azokat az adatokat, amelyek korábban a tömbben voltak.

A fenti ablakban a tömb Mel, Steve és Bob lakta. Amikor újra bejelentették, eltávolította ezeket az értékeket, és helyette 3 üres értéket, majd a „Fred” értéket adott vissza. Ennek oka az TARTÁS kijelentés elmarad.

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave