VBA-arraysfunctie in Excel

In VBA worden arrays gebruikt om de groep objecten samen te definiëren, er zijn negen verschillende arrayfuncties in VBA en dit zijn ARRAY, ERASE, FILTER, ISARRAY, JOIN, LBOUND, REDIM, SPLIT en UBOUND, dit zijn allemaal ingebouwde functies voor array in VBA geeft de Array-functie ons de waarde voor het opgegeven argument.

Excel VBA Array-functie

Array-functie is een verzameling waarden in een enkele variabele. We kunnen een array aan een subroutine leveren in vba, functies en eigenschappen. VBA-arrays zijn een van de vaak gebruikte technieken om meer dan één waarde in de variabele op te slaan.

Voorbeelden van Excel VBA Array-functie

In plaats van veel variabelen te declareren en de waarden op te slaan, kunnen we de Excel VBA-array gebruiken om de waarde in een enkele variabele zelf op te slaan. Bekijk bijvoorbeeld het onderstaande voorbeeld

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

Code:

 Sub Array_Ex () Dim x As Integer Dim y As Integer x = 1 y = 2 Bereik ("A1"). Waarde = x Bereik ("A2"). Waarde = y End Sub 

In het bovenstaande voorbeeld heb ik twee variabelen gedeclareerd, genaamd x & y. X heeft 1 als waarde en Y heeft 2 als waarde.

Bekijk nu het voorbeeld van de Excel VBA-array-functie met een enkele variabele.

Code:

 Sub Array_Ex () Dim x (1 tot 2) As Integer Range ("A1"). Value = x (1) Range ("A2"). Value = x (2) End Sub 

Als u deze VBA-code nu uitvoert, zouden we waarden hebben in cel A1 en A2.

Array-variabelen retourneerden het resultaat als nul. Dit komt omdat we zojuist variabelen als twee hebben gedeclareerd, maar we hebben geen waarden aan die variabelen toegewezen. We moeten dus waarden aan deze variabelen toewijzen.

Code:

 Sub Array_Ex () Dim x (1 tot 2) As Integer x (1) = 10 x (2) = 20 Bereik ("A1"). Waarde = x (1) Bereik ("A2"). Waarde = x (2 ) Einde Sub 

Voer nu de code uit om resultaten te krijgen.

Voordat we de waarden van matrixvariabelen aan cellen invoeren, moeten we de waarde toewijzen aan die gedeclareerde matrixvariabelen zoals we de variabelen x (1) = 10 & x (2) = 20 hebben toegewezen.

Voorbeeld 1 - Serienummers invoegen met behulp van statische array

Laten we eens kijken naar het voorbeeld van het gebruik van een statische array om serienummers in te voegen. Dit lijkt veel op de vorige.

Code:

 Sub StaticArray_Ex () Dim x (1 tot 5) As Integer x (1) = 10 x (2) = 20 x (3) = 30 x (4) = 40 x (5) = 50 Range ("A1"). Waarde = x (1) Bereik ("A2"). Waarde = x (2) Bereik ("A3"). Waarde = x (3) Bereik ("A4"). Waarde = x (4) Bereik ("A5" ) Waarde = x (5) End Sub 

Voer nu deze code uit om serienummers in te voegen.

Voorbeeld # 2 - Serienummers invoegen met behulp van dynamische matrix

Nu zullen we het tweede type array zien, namelijk een dynamische array

Code:

 Sub DynamicArray_Ex () Dim x () As Integer ReDim x (5) x (1) = 10 x (2) = 20 x (3) = 30 x (4) = 40 x (5) = 50 Bereik ("A1" ). Waarde = x (1) Bereik ("A2"). Waarde = x (2) Bereik ("A3"). Waarde = x (3) Bereik ("A4"). Waarde = x (4) Bereik (" A5 "). Waarde = x (5) End Sub 

Voer nu deze code uit om het resultaat van serienummers te krijgen. We krijgen hetzelfde resultaat als het vorige.

Als u merkt dat we de lengte van de array niet hebben opgegeven bij het declareren van de variabele, hebben we in plaats daarvan de laatste waarde van de VBA-array toegewezen met behulp van de VBA Redim-functie. Redim bevat de laatste waarde van de array die moet worden doorgegeven.

Voorbeeld # 3 - Maak een functie om maandnamen in te voegen met behulp van Array

We hebben gezien hoe we met arrays in VBA kunnen werken. Nu zullen we zien hoe we met een array kunnen werken om VBA-functies in Excel te maken. De functie is niets anders dan een door de gebruiker gedefinieerde functie in VBA. Naast het gebruik van ingebouwde functies stelt Excel VBA ons in staat om ook onze eigen functies te creëren.

Code:

 Functie List_Of_Months () List_Of_Months = Array ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov "," Dec ") End-functie 

De onderstaande code maakt een functie die maanden in ons Excel-blad kan invoegen.

Kopieer en plak de onderstaande code in uw module.

Sla nu deze code op en sluit de VBA-editor. Nadat je de VBA-editor hebt gesloten, ga je naar het werkblad en typ je de formule die we zojuist hebben gemaakt. Je zou de formule met de naam List_Of_Months in je werkblad moeten zien .

Open de formule en druk op Enter. We krijgen de naam van de eerste maand, dwz Jan

Als je de formule nog een keer invoert, krijgen we Jan alleen, niet de volgende maand februari. Selecteer dus eerst 12 kolommen in één rij.

Open nu de formule in cel D1.

Omdat we de formule met de matrix hebben gemaakt, moeten we de formules alleen als matrixformule sluiten. Dus houd Ctrl + Shift + Enter ingedrukt. We zouden alle namen van 12 maanden hebben.

Dingen om te onthouden

  • Er zijn nog twee soorten arrays beschikbaar, namelijk een tweedimensionale array en een multidimensionale array.
  • Arrays beginnen bij 0 en niet bij 1. Nul betekent de eerste rij en de eerste kolom.
  • De array is een groot onderwerp dat u moet begrijpen om naar het volgende niveau te gaan.
  • Array-variabele zal er een zijn die veel gegevens bevat elke keer dat deze naar het volgende niveau gaat.
  • Redim wordt gebruikt om de laatste lengte van de array op te slaan in het dynamische array-type.