Excel VBA ReDim
A tömb elemeinek számát a VBA Redim segítségével állíthatjuk be. A Redim nem funkció, hanem dinamikus memóriaelosztási program a Redim utasításon keresztül. Amikor Redim-et használunk, egy bizonyos memóriamennyiséget nem kell tárolni az adatok tárolására.
Hogyan kell használni a VBA ReDim nyilatkozatot?
Néhány példa segítségével megvitatjuk a VBA ReDim nyilatkozat használatát.
Itt letöltheti ezt a VBA ReDim Excel sablont - VBA ReDim Excel sablonVBA ReDim - 1. példa
Ha Dim-et használunk egy tömbhöz, akkor nem módosíthatjuk a tömb adattárolásának értékét. De amikor Redim-et használunk, megváltoztathatjuk a tárolt értéket egy tömbben. A tömb megváltoztatásának ezt a folyamatát a tömb átméretezésének nevezik.
Tegyük fel, hogy van egy A tömb 4 cellaértékkel, akkor azt definiáljuk;
- Dim A (3) mint dupla
Mint láthatjuk, az összes cellának „0” van tárolt értéke. Tegyük fel, hogy ha a Dim A-t 3 cellaadattal újratermeljük és az értéket tároljuk, akkor az alábbiak szerint néz ki.
- ReDim B (2) mint dupla
B (0) = 1; B (1) = 3, B (2) = -6
Úgy fog kinézni;
Most, ha cellákat akarunk hozzáadni, meg tudjuk csinálni. Ezután automatikusan „0” -ot rendel hozzá a cellákhoz. A ReDim megvalósításához nyomja meg az Alt + F11 billentyűt a VBA ablak megnyitásához. És a Beszúrás menüből válassza a Modul lehetőséget, és nyisson meg egy új ablakot az alább látható módon.
Most nyissa meg az alkategóriát, és adjon hozzá bármilyen nevet. Ahogy a ReDim-et használjuk, így UseReDim- nek neveztük el .
Kód:
Sub UseReDim () Sub
Most, mielőtt meghatározná a ReDim-et, először határozza meg az egész számot. Itt definiáltuk „A” -ként, tömbhosszúsággal 3. És tároljon néhány értéket egy létrehozott 3 cellából álló tömbbe, az alább látható módon.
Kód:
Sub használataReDim () Dim A (2) egész számként ReDim A (2) A (0) = 1 A (1) = 2 A (2) = 3 End Sub
Az A egész számban tárolt értékek kinyomtatásakor létre kell hoznunk az üzenet mezőt az MsgBox parancs segítségével, az alább látható módon.
Kód:
Sub használataReDim () Dim A (2) egész számként A (0) = 1 A (1) = 2 A (2) = 3 MsgBox A (0) MsgBox A (1) MsgBox A (2) Vége Sub
Most futtassa a kódot a lejátszás gombra vagy az F5 gombra kattintva, az alább látható módon.
Most a ReDim programot fogjuk használni, és a megadott karaktereket a tömbben tárolja. Erre a célra a ReDim a megadott egész számhoz. Először eltávolítjuk a definiált cellák számát a Dim-ből. A Redim funkció használata a következő:
- A ReDim A (2) -et A ( 0), A (1), A (2) sejtsorozathoz használják.
- A ReDim A (4) -et A ( 0), A (1), A (2), A (3), A (4) sejtekhez használják, két extra dummy cellával.
Kód:
Sub használataReDim () Dim A () egész számként ReDim A (2) A (0) = 1 A (1) = 2 A (2) = 3 ReDim A (4) MsgBox A (0) MsgBox A (1) MsgBox A (2) Sub befejezés
Ha kész, akkor futtassa a teljes kódot a lejátszás gombra kattintva vagy az F5 billentyűvel. A teljes kód futtatása után 3 üzenetdobozt fogunk elhelyezni, de csak „0” -ot tartalmazó üzenettel, az alább látható módon.
Ennek oka az, hogy a ReDimnek valójában csak 3 értéke van, de nem tartalmazott tárolt értékeket meghatározott egész számok alatt. Csak a Redim használatával nem tárol semmilyen értéket, és a korábban tárolt értékeket átviszi bele. Ehhez meg kell őrizni a meghatározott A egész értékeket a ReDim segítségével. A VBA Preserve használatával az értéket ReDim-ben tárolhatjuk. Ehhez hozzá fogjuk adni a megőrzést a ReDim után az alább látható VBA Codeasban.
Kód:
Sub UseReDim () Dim A () Egész számként ReDim A (2) A (0) = 1 A (1) = 2 A (2) = 3 ReDim Preserve A (4) MsgBox A (0) MsgBox A (1) MsgBox A (2) Sub befejezés
Most futtassa újra a teljes kódot. 3 üzenetdobozt fogunk látni, az összes tárolt értékkel együtt, az alábbiak szerint.
Gondolkodnia kell azon, hogy miért használtuk az A (4) -et a ReDim Preserve-rel?
Az alábbiakban ismertetjük. Ahol a tömb 1., 2. és 3. helyét az 1., 2. és 3. érték veszi fel. És a 4. és 5. pozíció, amely az A tömb 3 és 4 számát képviseli, dummy cellák. Ami azt jelenti, ha nincs tárolt adat a 4. és 5. pozícióban, akkor automatikusan figyelembe veszi a „0” értéket, és az üzenet nem kerül kitöltésre.
Ha megpróbáljuk megtekinteni a ReDim tömb negyedik és ötödik helyzetében tárolt értékeket, akkor ehhez a 2 pozícióhoz is üzenetadatot kell beilleszteni.
Kód:
Sub UseReDim () Dim A () Egész számként ReDim A (3) A (0) = 1 A (1) = 2 A (2) = 3 ReDim Preserve A (4) MsgBox A (0) MsgBox A (1) MsgBox A (2) MsgBox A (3) MsgBox A (4) End Sub
Ahogy hozzáadtuk az üzenet dobozát a 4. és 5. pozícióba, anélkül, hogy bármilyen értéket tárolnánk. Most futtassa újra a kódot.
Amint a fenti képernyőképekből láthatjuk, a 4. és az 5. pozícióhoz üzenődobozokat kaptunk, de az érték „0”. Ami azt jelenti, hogy magyarázza a fenti állítást. Ha nincs megadva érték, akkor a ReDim Preserve automatikusan figyelembe veszi és kitölti a „0” értéket a többi cellában.
VBA ReDim - 2. példa
Most lássuk, hogyan lehet használni a ReDim nyilatkozatot karakterlánccal, egész szám helyett.
Kód:
Sub UseReDim () Dim A () String ReDim A (3) A (0) = "Customer" A (1) = "Product" A (2) = "Product Id" ReDim Preserve A (4) MsgBox A (0) ) MsgBox A (1) MsgBox A (2) MsgBox A (3) MsgBox A (4) End Sub
Ha kész, futtassa a teljes kódot F5 billentyűvel vagy manuálisan, az alább látható módon.
Amint azt a fenti képernyőképen láthatjuk, az összes meghatározott és tárolt karaktert az első 3 üzenet mezőbe kapjuk. És a 4. és 5. dobozban semmit sem kapunk. Mivel a ReDim nem tárol értéket, ha nincs megadva. Az egész számok esetében „0” -ként fog megjelenni, de a String esetén csak üres üzeneteket jelenít meg.
Az Excel VBA ReDim előnyei
- A VBA ReDim lehetővé teszi a dimenzióértékek újradefiniálását.
- Meghatározhatunk olyan dimenziós tömböket, amelyeknek nulla vagy nulla értéke van, és az értékeket később tárolhatjuk.
- ReDim jelentése A Re-Dimensioning lehetővé teszi tetszőleges számú adattömb hozzáadását anélkül, hogy növelné a tárolt adatok méretét.
Dolgok, amikre emlékezni kell
- Mindig ne felejtsen el hozzáadni a Tartalomvételt a ReDim után a VBA-ban, hogy az eltárolja a korábban használt méreteket.
- Ha egy méretet String-ként definiálunk, akkor az értékek hozzárendelésénél üresen hagyott pozíció üresen fog maradni, és ha egyszer ugyanezt kinyomtatjuk az üzenetdoboz segítségével, akkor az üres üzenetdobozt is ad.
- Ha definiáltuk a Dim dimenziókat 3 karakterrel vagy cellás értékekkel, akkor a ReDimben tetszőleges számú dimenziót használhatunk, amelyek a Dim-ben már definiált és tárolt értékeket tartalmaznak.
Ajánlott cikkek
Ez egy útmutató az Excel VBA ReDim programhoz. Itt megvitattuk, hogyan lehet a VBA ReDim nyilatkozatot használni a szóközök eltávolításához, néhány gyakorlati példával és letölthető Excel sablonnal együtt. Megnézheti más javasolt cikkeinket is -
- Hogyan kell használni a VBA hibanyilatkozatot?
- Számformátum a VBA-ban
- Hogyan kell használni a VBA Find Function funkciót?
- VBA TRIM funkció