Excel VBA ReDim

We kunnen het aantal elementen in een array aanpassen via VBA Redim. Redim is geen functie, het is een dynamisch geheugentoewijzingsprogramma via de Redim-instructie. Wanneer we Redim gebruiken, wordt een specifieke hoeveelheid geheugen gereserveerd om de gegevens op te slaan.

Hoe de VBA ReDim-verklaring gebruiken?

We zullen bespreken hoe VBA ReDim Statement te gebruiken aan de hand van enkele voorbeelden.

U kunt deze VBA ReDim Excel-sjabloon hier downloaden - VBA ReDim Excel-sjabloon

VBA ReDim - Voorbeeld # 1

Wanneer we Dim gebruiken voor een array, kunnen we de waarde van de gegevensopslag in een array niet wijzigen. Maar wanneer we Redim gebruiken, kunnen we de opgeslagen waarde in een array wijzigen. Dit proces van het wijzigen van de array wordt het opnieuw dimensioneren van de array genoemd.

Stel dat we een array A van 4 celwaarde hebben, dan wordt deze gedefinieerd met;

  • Dim A (3) als dubbel

Zoals we kunnen zien, hebben alle cellen “0” als opgeslagen waarde. Stel nu dat als we de dim A met 3-celgegevens herimuleren en de waarde erin opslaan, het er als volgt uitziet.

  • ReDim B (2) Als dubbel

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

Het ziet eruit als;

Als we nu cellen erin willen toevoegen, kunnen we dat doen. Vervolgens wordt automatisch de "0" aan die cellen toegewezen. Druk nu voor het implementeren van ReDim op Alt + F11 om het VBA-venster te openen. En selecteer in het menu Invoegen de optie Module om een ​​nieuw venster te openen, zoals hieronder wordt weergegeven.

Open nu Subcategorie en voeg een naam toe. Omdat we ReDim gebruiken, hebben we het genoemd als UsingReDim .

Code:

 Sub GebruikReDim () Einde Sub 

Voordat u ReDim definieert, definieert u eerst een geheel getal. Hier hebben we het gedefinieerd als “A” met matrixlengte 3. En slaan enkele waarden op in een gecreëerde matrix van 3 cellen zoals hieronder getoond.

Code:

 Sub UsingReDim () Dim A (2) Als geheel getal ReDim A (2) A (0) = 1 A (1) = 2 A (2) = 3 End Sub 

Nu de waarden worden afgedrukt die zijn opgeslagen in Geheel getal A, moeten we een berichtvenster maken met behulp van de opdracht MsgBox, zoals hieronder wordt weergegeven.

Code:

 Sub UsingReDim () Dim A (2) Als geheel getal A (0) = 1 A (1) = 2 A (2) = 3 MsgBox A (0) MsgBox A (1) MsgBox A (2) End Sub 

Voer nu de code uit door op de afspeelknop of F5-toets te klikken, zoals hieronder wordt weergegeven.

Nu zullen we ReDim gebruiken en het zal meer dan gedefinieerde karakters in de array opslaan. Gebruik hiervoor ReDim voor gedefinieerd geheel getal A. Eerst verwijderen we de gedefinieerde celtelling uit Dim. Het gebruik van de functie Redim is als volgt:

  • ReDim A (2) wordt gebruikt voor A (0), A (1), A (2) cellenarray.
  • ReDim A (4) wordt gebruikt voor A (0), A (1), A (2), A (3), A (4) cellen met twee extra dummy cellen.

Code:

 Sub GebruikReDim () Dim A () Als geheel getal ReDim A (2) A (0) = 1 A (1) = 2 A (2) = 3 ReDim A (4) MsgBox A (0) MsgBox A (1) MsgBox A (2) Einde Sub 

Als u klaar bent, voert u de volledige code uit door op de afspeelknop te klikken of de F5-toets te gebruiken. Zodra we de volledige code hebben uitgevoerd, krijgen we 3 berichtvakken, maar met een bericht dat alleen "0" bevat, zoals hieronder weergegeven.

Dat komt omdat ReDim eigenlijk slechts 3 waarden heeft maar geen opgeslagen waarden onder gedefinieerde gehele getallen droeg. Met Redim worden alleen geen waarden opgeslagen en worden de eerder opgeslagen waarden erin overgedragen. Om hetzelfde toe te passen, moeten we de waarden van het gedefinieerde gehele getal A behouden met behulp van ReDim. Door Preserve in VBA te gebruiken, kunnen we de waarde opslaan in ReDim. Hiervoor voegen we Preserve na ReDim toe in VBA Codeas hieronder weergegeven.

Code:

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

Voer nu de volledige code opnieuw uit. We zullen 3 berichtvakken zien met alle opgeslagen waarden erin zoals hieronder getoond.

Nu vraagt ​​u zich misschien af ​​waarom we A (4) met ReDim Preserve hebben gebruikt?

Hieronder staat de uitleg ervan. Waar de 1e, 2e en 3e positie van de reeks bezet zijn met respectievelijk waarden 1, 2 en 3. En de 4e en 5e positie die de 3 en 4 telling van array A vertegenwoordigen, zijn dummy cellen. Dit betekent dat als er geen gegevens zijn opgeslagen op de 4e en 5e positie, deze automatisch de waarde "0" in acht neemt en het bericht niet wordt ingevuld.

Als we proberen de waarden te zien die zijn opgeslagen op de 4e en 5e positie van de ReDim-array, moeten we ook een berichtvak invoegen voor deze 2 posities.

Code:

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

Zoals we hebben toegevoegd in een vak voor de vierde en vijfde positie zonder enige waarde op te slaan. Voer de code nu opnieuw uit.

Zoals we in de bovenstaande schermafbeeldingen kunnen zien, kregen we voor een 4e en 5e positie berichtvakken, maar de waarde wordt weergegeven als "0". Wat betekent dat bovenstaande verklaring wordt uitgelegd. Als er geen waarde is gedefinieerd, overweegt ReDim Preserve automatisch en vult "0" in de rest van de cellen.

VBA ReDim - Voorbeeld # 2

Laten we nu eens kijken hoe we ReDim Statement met String kunnen gebruiken in plaats van Integer.

Code:

 Sub UsingReDim () Dim A () As String ReDim A (3) A (0) = "Klant" 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 

Als u klaar bent, voert u de volledige code uit met de F5-toets of handmatig, zoals hieronder wordt weergegeven.

Zoals we in de bovenstaande schermafbeelding kunnen zien, krijgen we alle gedefinieerde en opgeslagen tekens in de eerste 3 berichtvakken. En in het 4 e en 5 e vak krijgen we niets. Omdat ReDim geen waarde opslaat als deze niet is gedefinieerd. Voor gehele getallen wordt dit weergegeven als "0", maar met String worden alleen lege berichten weergegeven.

Voordelen van Excel VBA ReDim

  • Met VBA ReDim kunnen we de dimensiewaarden opnieuw definiëren.
  • We kunnen maximaal dimensionele arrays definiëren met geen of nulwaarde en de waarden later opslaan.
  • ReDim, wat betekent dat re-dimensionering het mogelijk maakt om een ​​willekeurig aantal gegevensmatrices toe te voegen zonder de grootte van opgeslagen gegevens te vergroten.

Dingen om te onthouden

  • Denk er altijd aan om Preserve na ReDim in VBA toe te voegen, zodat de eerder gebruikte dimensies worden opgeslagen.
  • Als een dimensie is gedefinieerd als String, wordt elke positie die leeg is gelaten bij het toewijzen van waarden, leeg en zodra we hetzelfde afdrukken met behulp van het berichtenvak, wordt ook een leeg berichtvak weergegeven.
  • Als we de dimensies Dim met 3 tekens of celwaarden hebben gedefinieerd, kunnen we in ReDim een ​​willekeurig aantal dimensies gebruiken met reeds gedefinieerde en opgeslagen waarden in Dim.

Aanbevolen artikelen

Dit is een handleiding voor Excel VBA ReDim geweest. Hier hebben we besproken hoe VBA ReDim Statement te gebruiken om spaties te verwijderen, samen met enkele praktische voorbeelden en een downloadbare Excel-sjabloon. U kunt ook onze andere voorgestelde artikelen doornemen–

  1. Hoe VBA On Error Statement te gebruiken?
  2. Getalnotatie in VBA
  3. Hoe de VBA-zoekfunctie te gebruiken?
  4. VBA TRIM-functie

Categorie: