Excel VBA ReDim

Vi kan justere antallet af elementer i en matrix gennem VBA Redim. Redim er ikke en funktion, det er et dynamisk hukommelsesallokeringsprogram gennem Redim-sætning. Når vi bruger Redim, holdes en bestemt mængde hukommelse til side for at gemme dataene.

Hvordan bruges VBA ReDim-erklæring?

Vi vil diskutere, hvordan man bruger VBA ReDim-erklæring ved hjælp af nogle eksempler.

Du kan downloade denne VBA ReDim Excel-skabelon her - VBA ReDim Excel-skabelon

VBA ReDim - Eksempel # 1

Når vi bruger Dim til en matrix, kan vi ikke ændre værdien af ​​datalagring i en matrix. Men når vi bruger Redim, kan vi ændre den gemte værdi i en matrix. Denne proces til ændring af matrix kaldes re-dimensionering af matrixen.

Antag, at vi har en matrix A på 4 celleværdi, så defineres den med;

  • Dim A (3) Som dobbelt

Som vi kan se, har alle cellerne “0” som gemt værdi. Antag nu, at hvis vi reducerer Dim A med 3 celledata og gemmer værdien i det, vil det se ud som nedenfor.

  • ReDim B (2) Som dobbelt

B (0) = 1; B (1) = 3, B (2) = -6

Det vil se ud som;

Hvis vi nu vil tilføje celler i det, kan vi gøre det. Derefter tildeles den automatisk "0" til de celler. Nu til implementering af ReDim skal du trykke på Alt + F11 for at åbne VBA Window. Fra menuen Indsæt skal du vælge Modulindstilling for at åbne et nyt vindue som vist nedenfor.

Åbn nu underkategori og tilføj ethvert navn. Som vi bruger ReDim, så har vi navngivet som UsingReDim .

Kode:

 Sub UsingReDim () End Sub 

Før du definerer ReDim, skal du først definere et hvilket som helst heltal. Her har vi defineret det som "A" med matrixlængde 3. Og gemme nogle værdier i en oprettet række af 3 celler som vist nedenfor.

Kode:

 Sub UsingReDim () Dim A (2) Som heltal ReDim A (2) A (0) = 1 A (1) = 2 A (2) = 3 End Sub 

Nu udskrives de værdier, der er gemt i heltal A, vi er nødt til at oprette en meddelelsesboks ved hjælp af kommandoen MsgBox som vist nedenfor.

Kode:

 Sub UsingReDim () Dim A (2) Som heltal A (0) = 1 A (1) = 2 A (2) = 3 MsgBox A (0) MsgBox A (1) MsgBox A (2) End Sub 

Kør nu koden ved at klikke på play-knappen eller F5-tasten som vist nedenfor.

Nu vil vi bruge ReDim, og det vil gemme mere end definerede tegn i matrixen. Til denne brug ReDim til defineret heltal A. For det første fjerner vi det definerede celletal fra Dim. Brugen af ​​Redim-funktion er som følger:

  • ReDim A (2) bruges til A (0), A (1), A (2) celler array.
  • ReDim A (4) bruges til A (0), A (1), A (2), A (3), A (4) -celler med to ekstra dummy-celler.

Kode:

 Sub UseReDim () Dim A () Som heltal ReDim A (2) A (0) = 1 A (1) = 2 A (2) = 3 ReDim A (4) MsgBox A (0) MsgBox A (1) MsgBox A (2) Slut under 

Når det er gjort, skal du køre den komplette kode ved at klikke på play-knappen eller bruge F5-tasten. Når vi har kørt den komplette kode, vil vi 3 meddelelsesbokse, men med en meddelelse, der kun indeholder "0" som vist nedenfor.

Hvilket skyldes, at ReDim faktisk kun har 3 værdier, men det medførte ikke lagrede værdier under definerede heltal. Brug af Redim gemmer kun ingen værdier og overføres de tidligere gemte værdier til den. For at anvende det samme er vi nødt til at bevare værdierne for det definerede heltal A ved hjælp af ReDim. Ved at bruge Preserve i VBA, kan vi gemme værdien i ReDim. Til dette tilføjer vi Preserve efter ReDim i VBA Codeas vist nedenfor.

Kode:

 Sub UseReDim () Dim A () Som heltal 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) End Sub 

Kør nu den komplette kode igen. Vi vil se 3 meddelelsesbokse med alle de gemte værdier i det som vist nedenfor.

Nu skal du undre dig over, hvorfor vi brugte A (4) med ReDim Preserve?

Nedenfor er forklaringen på det. Hvor 1., 2. og 3. position af array optages med henholdsvis værdierne 1, 2 og 3. Og 4. og 5. position, der repræsenterer 3 og 4 tælling af matrix A, er dummyceller. Hvilket betyder, at hvis der ikke er lagrede data 4. og 5. position, vil den automatisk overveje værdien “0”, og meddelelsen bliver ikke befolket.

Hvis vi prøver at se værdierne, der er gemt i 4. og 5. position i ReDim-matrixen, skal vi også indsætte en meddelelsesboks til disse 2 positioner.

Kode:

 Sub UseReDim () Dim A () Som heltal 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 

Som vi har tilføjet en meddelelse i boks til 4. og 5. position uden at gemme nogen værdi. Kør nu koden igen.

Som vi kan se på ovenstående skærmbilleder, fik vi for en 4. og 5. position meddelelsesbokse, men værdien vises som ”0”. Hvilket betyder forklarer ovenstående udsagn. Hvis der ikke er defineret nogen værdi, vil ReDim Preserve automatisk overveje og udfylde "0" i resten af ​​cellerne.

VBA ReDim - Eksempel # 2

Lad os nu se, hvordan du bruger ReDim-erklæring med streng i stedet for heltal.

Kode:

 Sub UsingReDim () Dim A () Som streng 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 

Når det er gjort, skal du køre den komplette kode ved hjælp af F5-nøglen eller manuelt som vist nedenfor.

Som vi kan se på ovenstående skærmbillede, får vi alle de definerede og lagrede tegn i de første 3 meddelelsesbokse. Og i 4. og 5. kasse får vi intet. Da ReDim ikke gemmer nogen værdi, hvis den ikke er defineret. For heltal vil det reflektere som “0”, men med streng, viser det kun tomme beskeder.

Fordele ved Excel VBA ReDim

  • VBA ReDim giver os mulighed for at omdefinere dimensionsværdierne.
  • Vi kan definere så mange som dimensionelle arrays med ingen eller nulværdi og gemme værdier senere.
  • ReDim-betydning Re-Dimensioning giver mulighed for at tilføje et hvilket som helst antal dataarrays uden at øge størrelsen på gemte data.

Ting at huske

  • Husk altid at tilføje Preserve efter ReDim i VBA, så det gemmer de tidligere anvendte dimensioner.
  • Hvis en dimension er defineret som streng, vil enhver position, der er tom i tildelingen af ​​værdier, være tom, og når vi først udskriver det samme ved hjælp af meddelelsesfelt, vil det også give tomt meddelelsesfelt.
  • Hvis vi har defineret dimensionerne Dim med 3 tegn eller celleværdier, kan vi i ReDim bruge ethvert antal dimensioner, der allerede indeholder definerede og gemte værdier i Dim.

Anbefalede artikler

Dette har været en guide til Excel VBA ReDim. Her diskuterede vi, hvordan man bruger VBA ReDim-erklæring til at fjerne mellemrum sammen med nogle praktiske eksempler og downloadbar excel-skabelon. Du kan også gennemgå vores andre foreslåede artikler–

  1. Hvordan bruges VBA til fejlmeddelelse?
  2. Nummerformat i VBA
  3. Hvordan bruges VBA Find-funktion?
  4. VBA TRIM-funktion

Kategori: