Excel VBA ReDim

Vi kan justere antall elementer i en matrise gjennom VBA Redim. Redim er ikke en funksjon, det er et dynamisk minnetildelingsprogram gjennom Redim-setningen. Når vi bruker Redim, blir en bestemt mengde minne holdt til side for å lagre dataene.

Hvordan bruke VBA ReDim-uttalelse?

Vi vil diskutere hvordan du bruker VBA ReDim Statement ved å bruke noen eksempler.

Du kan laste ned denne VBA ReDim Excel Mal her - VBA ReDim Excel Mal

VBA ReDim - Eksempel # 1

Når vi bruker Dim for en matrise, kan vi ikke endre verdien på datalager i en matrise. Men når vi bruker Redim, kan vi endre den lagrede verdien i en matrise. Denne prosessen med å endre array kalles re-dimensjonering av matrisen.

Anta at vi har en gruppe A på 4 celleverdi, så vil den bli definert med;

  • Dim A (3) som dobbel

Som vi kan se, har alle cellene “0” som lagret verdi. Anta at hvis vi reduserer Dim A med 3 celledata og lagrer verdien i den, vil den se ut som nedenfor.

  • ReDim B (2) Som dobbelt

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

Det vil se ut som;

Hvis vi vil legge til celler i det, kan vi gjøre det. Da vil den automatisk tilordne “0” til de cellene. Nå for å implementere ReDim, trykk Alt + F11 for å åpne VBA Window. Og velg Module-alternativ fra Sett inn-menyen for å åpne et nytt vindu som vist nedenfor.

Nå åpner underkategorien og legg til et navn. Som vi bruker ReDim så har vi kalt navnetReDim .

Kode:

 Sub UsingReDim () Slutt Sub 

Før du definerer ReDim, må du først definere et helt tall. Her har vi definert det som "A" med matrelengde 3. Og lagre noen verdier i en opprettet gruppe med 3 celler som vist nedenfor.

Kode:

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

Nå trykker du verdiene som er lagret i heltall A, vi må lage meldingsboks ved hjelp av kommandoen MsgBox som vist nedenfor.

Kode:

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

Kjør nå koden ved å klikke på play-knappen eller F5-tasten som vist nedenfor.

Nå vil vi bruke ReDim, og det vil lagre mer enn definerte tegn i matrisen. For denne bruken ReDim for definert heltall A. For det første fjerner vi det definerte celletallet fra Dim. Bruken av Redim-funksjonen er som følger:

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

Kode:

 Sub UsingReDim () Dim A () Som heltall ReDim A (2) A (0) = 1 A (1) = 2 A (2) = 3 ReDim A (4) MsgBox A (0) MsgBox A (1) MsgBox A (2) Slutt under 

Når du er ferdig, kjører du den fullstendige koden ved å klikke på avspillingsknappen eller bruke F5-tasten. Når vi har kjørt den komplette koden, vil vi 3 meldingsbokser, men med en melding som bare inneholder "0" som vist nedenfor.

Noe som skyldes at ReDim faktisk bare har tre verdier, men den hadde ikke lagrede verdier under definerte heltall. Bruk av Redim lagrer ikke noen verdier og fører de tidligere lagrede verdiene videre til dem. For å bruke det samme trenger vi å bevare verdiene til definert heltall A, ved hjelp av ReDim. Ved å bruke Preserve i VBA, kan vi lagre verdien i ReDim. For dette vil vi legge til Preserve etter ReDim i VBA Codeas vist nedenfor.

Kode:

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

Nå kjører den komplette koden igjen. Vi vil se 3 meldingsbokser med alle lagrede verdier i den som vist nedenfor.

Nå må du lure på hvorfor vi brukte A (4) med ReDim Preserve?

Nedenfor er forklaringen på det. Der 1., 2. og 3. plassering av array er opptatt med verdiene 1, 2 og 3. Og 4. og 5. plassering som representerer 3 og 4 telling av matrise A er dummy celler. Hvilket betyr at hvis det ikke er lagret data 4. og 5. plassering, vil den automatisk vurdere verdien "0" og meldingen blir ikke befolket.

Hvis vi prøver å se verdiene som er lagret i 4. og 5. plassering av ReDim-matrisen, må vi også sette inn en meldingsboks for disse to posisjonene også.

Kode:

 Sub UsingReDim () Dim A () Som heltall 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 lagt til melding bokset for 4. og 5. plassering uten å lagre noen verdi. Nå kjører koden igjen.

Som vi kan se på skjermbildene ovenfor, fikk vi meldingsbokser for en 4. og 5. plassering, men verdien vises som ”0”. Noe som forklarer utsagnet ovenfor. Hvis det ikke er definert noen verdi, vil ReDim Preserve automatisk vurdere og fylle “0” i resten av cellene.

VBA ReDim - Eksempel # 2

La oss se hvordan du bruker ReDim Statement med streng i stedet for heltall.

Kode:

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

Når du er ferdig, kjører du den fullstendige koden ved å bruke F5-tasten eller manuelt som vist nedenfor.

Som vi kan se på skjermbildet over, får vi alle de definerte og lagrede tegnene i de tre første meldingsboksene. Og i 4. og 5. boks får vi ingenting. Ettersom ReDim lagrer ingen verdi hvis ikke definert. For heltal vil det reflektere som "0", men med streng, vil det bare vise tomme meldinger.

Fordeler med Excel VBA ReDim

  • VBA ReDim lar oss definere dimensjonsverdiene på nytt.
  • Vi kan definere så mange som dimensjonale matriser med ingen eller null verdi og lagre verdiene senere.
  • ReDim betyr at Re-Dimensioning gir mulighet for å legge til et antall dataarrayer uten å øke størrelsen på lagrede data.

Ting å huske

  • Husk alltid å legge til Preserve etter ReDim i VBA, slik at det lagrer de tidligere brukte dimensjonene.
  • Hvis en dimensjon er definert som streng, vil en hvilken som helst plassering som er tom i tildeling av verdier, være tom og når vi først har skrevet ut det samme ved hjelp av meldingsboksen, vil det også gi blank meldingsboks.
  • Hvis vi har definert dimensjonene Dim med 3 tegn eller celleverdier, kan vi i ReDim bruke et hvilket som helst antall dimensjoner som har allerede definerte og lagrede verdier i Dim.

Anbefalte artikler

Dette har vært en guide til Excel VBA ReDim. Her diskuterte vi hvordan du bruker VBA ReDim Statement for å fjerne mellomrom sammen med noen praktiske eksempler og nedlastbar Excel-mal. Du kan også gå gjennom andre foreslåtte artikler–

  1. Hvordan bruker VBA On Error Statement?
  2. Nummerformat i VBA
  3. Hvordan bruker jeg VBA Finn-funksjon?
  4. VBA TRIM-funksjon

Kategori: