VBA Declare Array

Excel VBA Declare Array

Declaratie van array in VBA lijkt sterk op die van variabelen, het wordt gedaan door dezelfde dim-instructie of statische openbare of privé-instructie, het enige verschil tussen het declareren van een array en het declareren van een variabele is dat we bij het declareren van een array een grootte moeten opgeven van een array die de bovengrens van de array en de ondergrens van de array is.

In VBA-code kunnen we een enkele variabele array declareren die het aantal variabelen kan bevatten in plaats van enkele variabelen te declareren. Dit kan helpen om het aantal regels in de code te verminderen.

De array is een soort variabele die meer dan één waarde kan bevatten, in tegenstelling tot reguliere variabelen die slechts één waarde tegelijk kunnen bevatten. De array is een geavanceerde versie van het declareren van variabelen in VBA. Stel je bijvoorbeeld een situatie voor waarin je 5 studentennamen aan variabelen wilt toewijzen en in de huisartsenpraktijk declareren we vijf variabelen voor alle vijf variabelen die we individuele studentennamen een voor een toekennen, hieronder staat de voorbeeldcode daarvan.

Code:

 Sub Array_Example () Dim Student1 As String Dim Student2 As String Dim Student3 As String Dim Student4 As String Dim Student5 As String End Sub 

In plaats van zoveel variabelen te declareren, wat dacht je van het idee om een ​​enkele variabele array te declareren die alle studentennamen kan bevatten.

Ja, dit is mogelijk door de array in VBA te declareren.

Voorbeelden

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

Voorbeeld 1

Om te verklaren dat we geen speciale VBA-codering hoeven te doen, moeten we eerder eenvoudige concepten volgen.

Start eerst de subprocedure.

Code:

 Sub Array_Example () End Sub 

Declareer nu, zoals gewoonlijk, een variabele als een string.

Code:

 Sub Array_Example () Dim Student As String End Sub 

Nadat de variabele is gedeclareerd, moet u controleren hoeveel waarden deze moet bevatten. In dit geval wil ik de namen van vijf studenten opslaan, dus nu moeten we de array-grootte vastleggen, dwz 1 tot 5. Geef hetzelfde aan de variabele tussen haakjes.

Code:

 Sub Array_Example () Dim Student (1 tot 5) As String End Sub 

Nu kunnen we voor deze enkele variabele 5 studentennamen opslaan.

Code:

 Sub Array_Example () Dim Student (1 tot 5) As String Student (1) = "John" Student (2) = "Peter" Student (3) = "Ricky" Student (4) = "Michael" Student (5) = "Anderson" End Sub 

Kijk hoeveel regels we hebben verminderd door de variabele als een array te declareren. Dit is een manier om deze code nog steeds in te korten door deze in de loops in VBA op te nemen.

Nu voor een voorbeeld, dezelfde vijf namen die ik in werkbladcellen heb

Nu wil ik deze getallen weergeven in het berichtvenster in VBA, oké, laten we nog een variabele declareren voor lussen als het gegevenstype Integer.

Code:

 Sub Array_Example () Dim Student (1 tot 5) As String Dim K As Integer End Sub 

Zoals gewoonlijk heb ik de arrayvariabele behouden als grootte van 1 tot 5.

Open nu de FOR NEXT-lus in VBA en aangezien we vijf namen hebben, voert u de limiet in als 1 tot 5.

Code:

 Sub Array_Example () Dim Student (1 tot 5) As String Dim K As Integer For K = 1 to 5 Next K End Sub 

Om waarden toe te wijzen aan de arrayvariabele hoeven we niet de vorige manier te volgen om Student (1), Student (2) op deze manier weer te geven voor getallenpositie toevoerlussen variabele “k”.

Code:

 Sub Array_Example () Dim Student (1 tot 5) As String Dim K As Integer For K = 1 tot 5 Student (K) = Next K End Sub 

Voor deze matrixvariabele hebben we de waarden uit het werkblad nodig, dus gebruik de eigenschap CELLS om de waarden uit het werkblad op te halen.

Code:

 Sub Array_Example () Dim Student (1 tot 5) As String Dim K As Integer For K = 1 to 5 Student (K) = Cells (K, 1). Value Next K End Sub 

Toon nu via het berichtvenster de waarde van de array-variabele.

Code:

 Sub Array_Example () Dim Student (1 tot 5) As String Dim K As Integer For K = 1 to 5 Student (K) = Cells (K, 1). Value MsgBox Student (K) Next K End Sub 

Voer nu de code uit, in het berichtvenster zullen we de voornaam zien. Druk nogmaals op Ok om de tweede naam te zien. Als u op OK drukt, kunnen we alle vijf namen zien.

Voorbeeld # 2 - Tweedimensionale arrays

We hebben hierboven gezien hoe de array werkt, nu gaan we naar dimensionale arrays kijken. Tweedimensionale arrays concentreren zich op zowel rijen als kolommen.

In het bovenstaande voorbeeld hebben we de grootte van de array bepaald als 1 tot 5, dit concentreert zich op rijen of kolommen.

Door tweedimensionale arrays te gebruiken, kunnen we ons concentreren op zowel rijen als kolommen. Hiervoor moeten we twee lussen omsluiten.

Definieer eerst de variabele en laat later beslissen over de grootte van de array.

Code:

 Sub Two_Array_Example () Dim Student As String End Sub 

Bepaal eerst de rijgrootte en bepaal vervolgens de kolomlengte.

Code:

 Sub Two_Array_Example () Dim Student (1 tot 5, 1 tot 3) As String End Sub 

For this, I have structured the data for student name, marks and grade status.

Now come back to the coding window.

Declare two more variables for a loop.

Code:

 Sub Two_Array_Example() Dim Student(1 To 5, 1 To 3) As String Dim K As Integer , J As Integer End Sub 

Now enclose the loop as shown below.

Code:

 Sub Two_Array_Example() Dim Student(1 To 5, 1 To 3) As String Dim k As Integer , J As Integer For k = 1 To 5 For J = 1 To 3 Worksheets("Student List").Select Student(k, J) = Cells(k, J).Value Worksheets("Copy Sheet").Select Cells(k, J).Value = Student(k, J) Next J Next k End Sub 

What this will do is it will copy the data from the “Student List” sheet and paste in “Copy Sheet”.

Things to Remember

  • The array is a vast concept, this is just an introductory part.
  • You need advanced coding skills to understand the array declaration.
  • The more you use arrays in your code the more you will get used to it.