VBA Declare Array - Hoe arrays in VBA declareren?

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 is de voorbeeldcode van hetzelfde.

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

Voorbeeld 1

Om aan te geven, hoeven we geen speciale VBA-codering uit te voeren. We moeten 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

Zodra de variabele is gedeclareerd, moet u er nu voor zorgen 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 te doen. We kunnen deze code nog steeds verkorten 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 nummers weergeven in het berichtvenster in VBA; ok, laten we nog een variabele voor lussen declareren als integer datatype.

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 1 tot 5 formaten.

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 aan de matrixvariabele toe te wijzen, 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 met de eigenschap CELLS worden de waarden uit het werkblad opgehaald.

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

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 zien we de voornaam. Druk nogmaals op Ok om de tweede naam te zien. Als u op OK drukt, kunnen we alle vijf de namen zien.

Voorbeeld # 2 - Tweedimensionale arrays

We have seen above how the array works, now we will see to dimensional arrays. Two-dimensional arrays concentrate on both rows and columns.

In the above example, we have determined the array’s size as 1 to 5; this either concentrates on rows or columns.

By using two-dimensional arrays, we can concentrate on both rows and columns. For this, we need to enclose two loops.

First, define the variable then late we will decide about the size of the array.

Code:

Sub Two_Array_Example() Dim Student As String End Sub

First, decide row size then decide the column length.

Code:

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

For this, I have structured the data for student names, 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 tot 5, 1 tot 3) As String Dim K As Integer, J As Integer End Sub

Omsluit nu de lus, zoals hieronder weergegeven.

Code:

Sub Two_Array_Example () Dim Student (1 tot 5, 1 tot 3) As String Dim k As Integer, J As Integer For k = 1 to 5 For J = 1 to 3 Worksheets ("Student List"). Selecteer Student (k, J) = Cellen (k, J) .Value Worksheets ("Copy Sheet"). Selecteer Cellen (k, J) .Value = Student (k, J) Next J Next k End Sub

Wat dit zal doen, is dat het de gegevens van het blad "Leerlingenlijst" kopieert en in "Blad kopiëren" plakt.

Dingen om te onthouden

  • De array is een enorm concept; dit is slechts een inleidend gedeelte.
  • U hebt geavanceerde codeervaardigheden nodig om de array-declaratie te begrijpen.
  • Hoe meer u arrays in uw code gebruikt, hoe meer u eraan zult wennen.

Interessante artikelen...