VBA-arrays

Excel VBA-arrays

Over het algemeen wordt verondersteld dat één variabele een enkele waarde tegelijk bevat, maar als we meerdere waarden in een enkele variabele willen opslaan, staat een dergelijk type variabele bekend als array-variabele, om een ​​array-variabele in VBA te gebruiken, moeten we declareren of definieer het eerst, we kunnen de arrayvariabele definiëren met zijn lengte of zonder zijn lengte.

Stel dat we gegevens hebben die honderden rijen en meerdere kolommen bevatten en we een code moeten maken die de gegevens gebruikt. Nu moeten we in dit geval veelvouden van de variabele maken die de waarde uit de cellen halen en aan het programma geven. Dit zal erg vermoeiend zijn om zoveel variabelen te maken en daarom gebruiken we in dergelijke gevallen Arrays in Excel.

Arrays houden de gegevensset in hun geheugen vast en hebben ons niet nodig om de variabele te declareren voor elk van de waarden die uit de gegevens moeten worden opgehaald. De noodzaak om arrays te gebruiken is vanwege het feit dat een Excel-variabele is ontworpen om één waarde tegelijk te bevatten, maar wanneer meerdere waarden worden opgeslagen door een variabele, wordt het een array.

  • Het maken van een array is als het maken van een aparte geheugeneenheid die de gegevens erin kan bevatten. Voor het maken van een array moeten de gegevens van hetzelfde type zijn.
  • Arrays die we aan Excel geven, moeten overeenkomen met het type gegevens dat we hebben. Stel dat als we gegevens hebben die alleen rijen hebben, we in dit geval de "eendimensionale array" gebruiken en als gegevens ook kolommen bevatten, dan moeten we "tweedimensionale arrays" gebruiken, omdat deze alleen de waarden kunnen bevatten uit de rijen en kolommen.
  • Arrays moeten ook functioneren om te werken als dynamische arrays of statische arrays. Omdat we een dynamisch bereik aan de formule geven, kunnen we ook de Arrays-variabele maken. Dynamische arrays hebben de functionaliteit om een ​​oneindig aantal rijen en kolommen op te nemen. Als de arrays die we hebben gedefinieerd van een statisch type zijn, kunnen ze slechts een beperkt aantal rijen en kolommen bevatten zoals gedefinieerd op het moment dat de array werd gemaakt.

Uitleg

Array werkt volgens de "Mathematical rule of matrix", dat wil zeggen dat ze de gegevens alleen op basis van hun locatie identificeren. Stel dat als we VBA moeten laten begrijpen dat we "20" nodig hebben in cel "B3", dan moeten we de code van de locatie schrijven als (3, 2) waar de eerste waarde staat voor de locatie van de rij en de tweede waarde staat voor het kolomnummer. In de wereld van Excel wordt deze code van locaties "bovengrens" en "ondergrens" genoemd. Standaard begint de locatie in Excel vanaf één en niet vanaf nul, dus Excel ziet "A1" als rijnummer 0 en niet als rijnummer 1.

Evenzo beginnen de kolommen vanaf nul en niet vanaf één.

Deze arrays kunnen worden gedefinieerd als een statische array of dynamische array. Als we ze definiëren als een statische array, betekent dit dat ze niet meer kunnen bevatten dan de variabelen zoals gedefinieerd tijdens het coderen. Als we niet zeker zijn over de waarde die moet worden onthouden door de arrays, maken we dynamische arrays en in dergelijke gevallen kunnen ze oneindig veel waarden bevatten.

Nadat we het type array hebben geselecteerd dat nodig is, zullen we nu de gegevens in deze arrays moeten invoeren.

Deze gegevens moeten een voor een worden gegeven om op onderstaande manieren uit te blinken.

Nadat de gegevens in deze arrays zijn opgeslagen, zijn ze klaar om te gebruiken als een variabele in de VBA-codering.

Lijst met de top 5 soorten arrays

  1. Statische arrays
  2. Dynamische matrix
  3. Een dimensionale array
  4. Tweedimensionale array
  5. Multidimensionale array

Laten we ze allemaal in detail bekijken.

# 1 - Statische arrays

Een array met een vooraf gedefinieerde waarde die erin kan worden opgeslagen.

# 2 - Dynamische reeks

Array met een niet vooraf gedefinieerde telling van waarde die het aankan.

# 3 - Eendimensionale matrix

Een matrix die alleen gegevens uit rijen of kolommen kan bevatten.

# 4 - Tweedimensionale array

Een array die een waarde uit de rijen en kolommen kan opslaan.

# 5 - Multidimensionale array

Hoe gebruik je arrays in VBA (met voorbeelden)?

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

Arrays kunnen in veel situaties worden gebruikt, maar ze moeten worden gebruikt als het aantal variabelen dat moet worden gedeclareerd groot is en het niet haalbaar is om ze te declareren.

Hieronder staan ​​enkele voorbeelden, maar voordat we naar de voorbeelden gaan, zullen we leren om de VBA-editor te openen met een sneltoets

Dit opent de VBA-editor, van daaruit moeten we de code invoeren in "Dit werkblad".

Voorbeeld 1

Kies het type array dat u wilt, moet dit een dynamische of statische array zijn?

Als we een dynamische array nodig hebben, definiëren we de dimensie als "variant".

Als we een statische array nodig hebben, zullen we een dimensie definiëren als "Statisch".

Voorbeeld # 2

Definieer de kolommen en rijen die u in de array wilt opslaan.

Als we "1" in de haak hebben ingevoerd, betekent dit dat de array 2 rijen waarde kan bevatten aangezien het tellen van Excel begint vanaf nul.

Als we ook kolommen en rijen nodig hebben, moeten we beide definiëren.

Hier betekent "1 tot 2" dat twee rijen en "1 tot 3" betekent dat drie kolommen.

Hier hebben we de regel van hoe Excel rijen telt veranderd en gevraagd om vanaf "1" te tellen en niet vanaf nul.

Voorbeeld # 3

De invoer van gegevens in de array.

De gegevens moeten celgewijs ingevoerd worden. Hier moeten de gegevens worden ingevoerd in de vorm van (I, j) waarbij "I" de rij en "J" de kolom betekent.

Dus "a (1,1") betekent dat cel "A1"

Voorbeeld # 4

De code sluiten.

Nadat de gegevens voor de array zijn ingevoerd, is de laatste stap het sluiten van de code.

Dingen om te onthouden

  • Standaard telt Excel de rijen vanaf nul. Dit betekent dat "2" in plaats van "I" 3 rijen betekent en niet 2 rijen. Ditzelfde geldt voor "J".
  • De gegevens die moeten worden ingevoerd voor de array, moeten worden gestart vanaf (0, 0), dat wil zeggen vanaf de eerste rij en de eerste kolom.
  • Als we de dynamische arrays gebruiken, dan heeft dit de functie van "VBA REDIM" nodig om het aantal rijen en kolommen te definiëren dat moet worden onthouden.
  • In het geval dat we een tweedimensionale array maken, moeten we “Integer” als dimensie gebruiken.
  • Het Excel-bestand moet worden opgeslagen in de versie die "Macro-compatibel" is, anders zal de codering die we in VBA hebben gedaan, verdwijnen en de volgende keer niet worden uitgevoerd.