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-sjabloonVoorbeeld 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.