Excel VBA-arrays

Excel VBA-array is niets anders dan een variabele die hetzelfde gegevenstype kan bevatten. Een array is een groep van een variabele die meer dan één variabele kan opslaan. De variabelenaam zal hetzelfde zijn, maar kan verschillende waarden bevatten in een enkele variabele. Een VBA-array is een type variabele dat wordt gebruikt om lijsten met gegevens van hetzelfde type op te slaan.

Als we 5 cellen hebben die nummers bevatten, moeten we 5 variabelen declareren om 5 verschillende nummers in het bereik te bevatten. Maar door array te gebruiken, kunnen we 5 verschillende waarden in een enkele variabele zelf bevatten.

Hoe Excel VBA-arrays te gebruiken?

Laten we begrijpen hoe we Excel VBA-arrays en hun typen kunnen gebruiken met enkele voorbeelden.

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

Voorbeeld 1

Bekijk het onderstaande voorbeeld. X is een variabele die het gegevenstype geheel getal bevat.

Code:

 Sub Array_Example1 () Dim x als geheel getal x = 1 End Sub 

Wijs nu een waarde van 1 toe aan de gedeclareerde variabele x.

Laten we de waarde van 1 in de cel A1 invoegen.

Code:

 Sub Array_Example1 () Dim x als geheel getal x = 1 bereik ("A1"). Waarde = x 
 Einde Sub 

De x-waarde is gelijk aan 1 en in het bereik A1 wordt de waarde ingevoegd als de waarde van x, dwz de waarde van x is 1. Voer de code nu uit met de F5-toets of handmatig om de resultaten te bekijken.

In het bovenstaande voorbeeld bevat x slechts één variabele, dat is alles. Maar als ik 5 opeenvolgende getallen wil invoegen met behulp van de enkele variabele, moet ik de type array-variabele gebruiken die veel variabelewaarden in een enkele variabelenaam kan bevatten.

Voorbeeld 2

Bekijk nu het onderstaande voorbeeld. Een variabelenaam is x en het gegevenstype is LANG. Maar terwijl ik de variabele zelf verklaar, heb ik de haak geopend en 1 tot 5 genoemd. Dit betekent dat variabele x 5 verschillende soorten waarden kan bevatten.

Code:

 Sub Array_Example () Dim x (1 tot 5) Zo lang, i als geheel getal Sub 

Daarna heb ik de waarden aan elke variabele toegewezen. X (1) = 20 betekent dat de eerste variabele gelijk moet zijn aan de waarde van 20. X (2) = 25 betekent dat de tweede variabele gelijk moet zijn aan de waarde van 25 enzovoort.

Code:

 Sub Array_Example () Dim x (1 tot 5) Zo lang, i As Geheel getal x (1) = 20 x (2) = 25 x (3) = 44 x (4) = 78 x (5) = 96 End Sub 

Later heb ik nog een variabele met de naam "I" verklaard, dit is het tweede type van een variabele en bevat het gegevenstype integer .

In de volgende stap heb ik FOR-lussen toegepast om toegewezen nummers toe te voegen aan de array in de eerste kolom. Ik heb de waarde van de variabele i ingesteld op 1 en ik heb de lus geïnstrueerd om 1 tot 5 keer te lopen. Wanneer de lus voor de eerste keer loopt, is de i- waarde gelijk aan 1. CELLEN (I, 1) .waarde = x (i) dit betekent dat ik voor de eerste keer gelijk ben aan 1, dwz CELLEN (1, 1) .waarde = x (1), in de eerste rij eerste kolom (cel A1) is de waarde de waarde van de eerste array ( x (1) ), dwz 20.

Wanneer de lus voor de tweede keer loopt, wordt i waarde 2, dwz CELLEN (2, 1). Waarde = x (2), in de eerste rij eerste kolom (A2) is de waarde de waarde van de tweede matrix ( x (2) ) dat wil zeggen 25.

Code:

 Sub Array_Example () Dim x (1 tot 5) Zo lang, i As Geheel getal x (1) = 20 x (2) = 25 x (3) = 44 x (4) = 78 x (5) = 96 Voor i = 1 tot 5 cellen (i, 1). Waarde = x (i) Volgende ik beëindig Sub 

Zoals dit wanneer de lussen blijven lopen, blijven de waarden veranderen. Wanneer de lussen voor de derde keer worden uitgevoerd, is de celwaarde van 44 44. De vierde keer dat de lus wordt uitgevoerd, is de celwaarde van 78, 78 wanneer de lussen voor de laatste keer worden uitgevoerd, of de A5-celwaarde voor de vijfde keer 96 is.

Na het uitvoeren van de code met behulp van de F5-toets of handmatig, krijgen we resultaten zoals hieronder weergegeven.

Typen arrays in Excel

Arrays hebben verschillende typen in VBA. Er zijn vijf soorten arrays beschikbaar in excel.

  • Statische array
  • Dynamische array
  • Eén dimensionale array
  • Tweedimensionale array
  • Multidimensionale array

Statische array

In dit type array wordt de lengte van de array vooraf bepaald en blijft deze constant.

Code:

 Sub Static_Example () Dim ArrayType (1 tot 3) As Integer ArrayType (1) = 0 ArrayType (2) = 1 ArrayType (3) = 2 cellen (1, 1). Waarde = ArrayType (1) Cellen (1, 2) .Value = ArrayType (2) Cellen (1, 3) .Value = ArrayType (3) End Sub 

In de bovenstaande code wordt de lengte van het ArrayType ruim van tevoren bepaald als 1 tot 3 en is het gegevenstype Integer.

Na het uitvoeren van de code met behulp van de F5-toets of handmatig, krijgen we resultaten zoals hieronder weergegeven.

Dynamische array

In dit type array wordt de lengte van de array niet lang van tevoren bepaald.

Code:

 Sub Dynamic_Example () Dim ArrayType () As Variant ReDim ArrayType (3) ArrayType (1) = "Mijn naam" ArrayType (2) = "is" ArrayType (3) = "Excel" Cellen (1, 1). Waarde = ArrayType (1) Cellen (1, 2). Waarde = ArrayType (2) Cellen (1, 3). Waarde = ArrayType (3) End Sub 

In dit type arraygegevens is Variant en de lengte wordt hier niet bepaald. Na het declareren van de variabele heb ik de lengte van de array toegewezen met behulp van de ReDim- functie. Deze array voegt de waarden zoals deze in Cel A1 = Mijn naam, Cel B1 = is, Cel C1 = Excel.

Eén dimensionale array

In dit type array wordt de lengte bepaald, maar in één dimensie werkt het.

Code:

 Sub One_Dimensional () Dim OneDimension (1 tot 3) As String OneDimension (1) = 40 OneDimension (2) = 50 OneDimension (3) = 15 End Sub 

Toon deze waarde in VBA-berichtenbox.

Code:

 Sub One_Dimensional () Dim OneDimension (1 tot 3) As String OneDimension (1) = 40 OneDimension (2) = 50 OneDimension (3) = 15 MsgBox OneDimension (1) & ", " & OneDimension (2) & ", " & OneDimension (3) End Sub 

Voer deze code uit met de F5-toets of handmatig en we zullen het volgende resultaat krijgen.

Tweedimensionale array

In dit type array wordt de lengte in twee dimensies bepaald en deze werkt.

Code:

 Sub Two_Dimensional () Dim TwoDimension (1 tot 2, 1 tot 2) Zo lang Dim i als geheel getal Dim j als geheel getal TwoDimension (1, 2) = 40 TwoDimension (2, 1) = 50 TwoDimension (1, 1) = 15 TwoDimension (2, 2) = 10 Einde Sub 

Sla deze waarden nu op in de cellen onder de code.

Code:

 Sub Two_Dimensional () Dim TwoDimension (1 tot 2, 1 tot 2) Zo lang Dim i als geheel getal Dim j als geheel getal TwoDimension (1, 2) = 40 TwoDimension (2, 1) = 50 TwoDimension (1, 1) = 15 TwoDimension (2, 2) = 10 Voor i = 1 tot 2 Voor j = 1 tot 2 Cellen (i, j) = TwoDimension (i, j) Volgende j Volgende i Einde Sub 

Hiermee worden de gegevens zoals hieronder opgeslagen.

Multidimensionale array

In dit type array wordt de lengte bepaald, maar in multi-dimensie werkt het.

Code:

 Sub Multi_Dimensional () Dim TwoDimension (1 tot 3, 1 tot 2) Zo lang Dim i als geheel getal Dim j als geheel getal MultiDimension (1, 1) = 15 MultiDimension (1, 2) = 40 MultiDimension (2, 1) = 50 MultiDimension (2, 2) = 10 MultiDimension (3, 1) = 98 MultiDimension (3, 2) = 54 

Als je eerst naar de bovenstaande code kijkt, heb ik de array als 1 tot 3 en vervolgens als 1 tot 2 verklaard. Dit betekent dat wanneer ik de array eerst schrijf, ik alleen 1 tot 3 cijfers kan gebruiken, maar in de tweede spatie kan ik alleen 1 tot 2 niet 1 tot 3.

Met Loop kunnen we waarden in cellen invoegen. Ik heb twee lussen gebruikt voor een multidimensionale array.

Code:

 Sub Multi_Dimensional () Dim TwoDimension (1 tot 3, 1 tot 2) Zo lang Dim i als geheel getal Dim j als geheel getal MultiDimension (1, 1) = 15 MultiDimension (1, 2) = 40 MultiDimension (2, 1) = 50 MultiDimension (2, 2) = 10 MultiDimension (3, 1) = 98 MultiDimension (3, 2) = 54 Voor i = 1 tot 3 Voor j = 1 tot 2 cellen (i, j) = MultiDimension (i, j) Volgende j Volgende beëindig ik Sub 

Na het uitvoeren van de code met behulp van de F5-toets of handmatig, krijgen we resultaten zoals hieronder weergegeven.

Dingen om te onthouden

  • Een array telt de waarden vanaf nul, niet vanaf 1.
  • Matrix (0, 0) betekent eerste rij eerste kolom.
  • Dit Excel-macrobestand moet worden opgeslagen als een macro-ingeschakelde werkmap.
  • In het geval van Dynamic array moeten we de waarde van array toewijzen met behulp van de REDIM-functie in VBA.

Aanbevolen artikelen

Dit is een handleiding voor VBA-arrays geweest. Hier hebben we soorten arrays in VBA besproken en het gebruik van Excel VBA-arrays samen met enkele praktische voorbeelden en een downloadbare Excel-sjabloon. U kunt ook onze andere voorgestelde artikelen doornemen -

  1. VIND functie in Excel met voorbeelden
  2. Wat is VBA-functie in Excel?
  3. Handleiding voor VBA-bereikobject
  4. Hoe de VBA VLOOKUP-functie te gebruiken?

Categorie: