Excel VBA ReDim

Vi kan justera antalet element i en grupp genom VBA Redim. Redim är inte en funktion, det är ett dynamiskt minnesallokeringsprogram genom Redim-uttalande. När vi använder Redim hålls en viss mängd minne åt sidan för att lagra informationen.

Hur använder man VBA ReDim-uttalande?

Vi kommer att diskutera hur man använder VBA ReDim-uttalande med hjälp av några exempel.

Du kan ladda ner denna VBA ReDim Excel-mall här - VBA ReDim Excel-mall

VBA ReDim - Exempel # 1

När vi använder Dim för en matris kan vi inte ändra värdet på datalagret i en matris. Men när vi använder Redim kan vi ändra det lagrade värdet i en matris. Denna process för att ändra matrisen kallas re-dimensionering av matrisen.

Anta att vi har en matris A med 4 cellvärden, då kommer den att definieras med;

  • Dim A (3) som dubbel

Som vi kan se har alla cellerna "0" som lagrat värde. Anta nu att om vi reducerar Dim A med 3 celldata och lagrar värdet i det så kommer det att se ut som nedan.

  • ReDim B (2) Som dubbel

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

Det kommer att se ut som;

Om vi ​​nu vill lägga till celler i det kan vi göra det. Då tilldelas den automatiskt "0" till cellerna. Nu för att implementera ReDim, tryck Alt + F11 för att öppna VBA-fönstret. Och från Infoga-menyn väljer du alternativet Modul för att öppna ett nytt fönster som visas nedan.

Öppna nu underkategorin och lägg till valfritt namn. Som vi använder ReDim så har vi namngivit som UsingReDim .

Koda:

 Sub UsingReDim () Avsluta Sub 

Innan du definierar ReDim ska du först definiera ett heltal. Här har vi definierat det som "A" med matrislängd 3. Och lagra några värden i en skapad grupp med 3 celler som visas nedan.

Koda:

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

Nu skriver vi ut de värden som lagrats i heltal A måste vi skapa meddelanderuta med hjälp av kommandot MsgBox som visas nedan.

Koda:

 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 genom att klicka på play-knappen eller F5-tangenten som visas nedan.

Nu kommer vi att använda ReDim och det kommer att lagra mer än definierade tecken i matrisen. För denna användning ReDim för definierat heltal A. För det första tar vi bort det definierade cellantalet från Dim. Användningen av Redim-funktion är som följer:

  • ReDim A (2) används för A (0), A (1), A (2) celler.
  • ReDim A (4) används för A (0), A (1), A (2), A (3), A (4) -celler med två extra dummy-celler.

Koda:

 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) End Sub 

När du är klar kör du hela koden genom att klicka på play-knappen eller med F5-tangenten. När vi har kört den fullständiga koden kommer vi att få 3 meddelanderutor men med ett meddelande som endast innehåller "0" som visas nedan.

Vilket beror på att ReDim faktiskt bara har 3 värden men det har inte lagrade värden under definierade heltal. Om du använder Redim lagrar bara inga värden och överför de tidigare lagrade värdena till dem. För att tillämpa samma måste vi bevara värdena på definierat heltal A med hjälp av ReDim. Genom att använda Preserve i VBA kan vi lagra värdet i ReDim. För detta lägger vi till Preserve efter ReDim i VBA Codeas som visas nedan.

Koda:

 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 fullständiga koden igen. Vi kommer att se tre meddelanderutor med alla lagrade värden i det som visas nedan.

Nu måste du undra varför vi använde A (4) med ReDim Preserve?

Nedan är förklaringen på det. Där 1: a, 2: e och 3: e positionen av matrisen upptas med värdena 1, 2 respektive 3. Och 4: e och 5: e positionen som representerar 3 och 4 räkningen av matris A är dummyceller. Vilket innebär att om det inte finns data lagrade 4: e och 5: e position kommer det automatiskt att överväga värdet "0" och meddelandet kommer inte att fyllas i.

Om vi ​​försöker se värdena lagrade i 4: e och 5: e positionen i ReDim-arrayen, måste vi också infoga en meddelanderuta för dessa två positioner.

Koda:

 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 lagt till meddelanden i boxning för 4: e och 5: e position utan att lagra något värde. Kör nu koden igen.

Som vi kan se i ovanstående skärmdumpar, för en 4: e och 5: e position fick vi meddelanderuta men värdet visas som ”0”. Vilket innebär att förklara ovanstående uttalande. Om det inte finns något värde definierat kommer ReDim Preserve automatiskt att överväga och fylla "0" i resten av cellerna.

VBA ReDim - Exempel # 2

Låt oss nu se hur du använder ReDim-uttalande med sträng istället för heltal.

Koda:

 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 är klar, kör sedan hela koden med F5-tangenten eller manuellt som visas nedan.

Som vi kan se på ovanstående skärmdump får vi alla de definierade och lagrade tecknen i de tre första meddelanderutorna. Och i fjärde och femte rutan får vi ingenting. Eftersom ReDim lagrar inget värde om det inte definieras. För heltal kommer det att reflekteras som "0" men med String kommer det bara att visa tomma meddelanden.

Fördelar med Excel VBA ReDim

  • VBA ReDim tillåter oss att omdefiniera dimensionens värden.
  • Vi kan definiera så många som dimensionella matriser med inget eller nollvärde och lagra värdena senare.
  • ReDim innebär att Re-Dimensioning gör det möjligt att lägga till ett antal datarader utan att öka storleken på lagrade data.

Saker att komma ihåg

  • Kom alltid ihåg att lägga till Preserve efter ReDim i VBA, så att det lagrar de tidigare använda dimensionerna.
  • Om en dimension definieras som sträng, kommer alla positioner som lämnas tomma i tilldelning av värden, att vara tomma och när vi har skrivit ut detsamma med hjälp av meddelandelådan kommer det också att bli tomt meddelandefält.
  • Om vi ​​har definierat dimensionerna Dim med 3 tecken eller cellvärden, kan vi i ReDim använda valfritt antal dimensioner som redan har definierade och lagrade värden i Dim.

Rekommenderade artiklar

Detta har varit en guide till Excel VBA ReDim. Här diskuterade vi hur man använder VBA ReDim-uttalande för att ta bort utrymmen tillsammans med några praktiska exempel och nedladdningsbar Excel-mall. Du kan också gå igenom våra andra föreslagna artiklar–

  1. Hur använder man VBA On Error Statement?
  2. Nummerformat i VBA
  3. Hur använder man VBA Find-funktion?
  4. VBA TRIM-funktion

Kategori: