VBA-array-grootte - stapsgewijze handleiding met voorbeelden

In dit artikel bieden we een stapsgewijze handleiding voor het vinden van de arraygrootte met VBA-code.

Hoe de grootte van een array te vinden met behulp van VBA-code?

Volg de stappen om de matrixgrootte te vinden met behulp van Excel VBA-code.

  • Stap 1: Laten we beginnen met de basis, declareer eerst een variabele in VBA als het variantgegevenstype.

Code:

Sub Array_Size () Dim MyArray als variant End Sub
  • Stap 2: Gebruik voor deze variabele de ARRAY-functie en wijs enkele waarden toe zoals hieronder weergegeven.

Code:

Sub Array_Size () Dim MyArray As Variant MyArray = Array ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul") End Sub
  • Stap 3: Ok, we hebben enkele waarden toegewezen aan de arraynaam “MyArray”.

Stel dat als we een lus moeten schrijven om deze matrixwaarden in cellen op te slaan, we moeten beslissen hoe vaak de lus moet worden uitgevoerd. Dit hangt af van het aantal waarden dat de array heeft.

Ok, kijk nu naar het aantal waarden dat is toegewezen aan de arraynaam "MyArray", er zijn in totaal 7 waarden toegewezen aan de array, dus nu weten we hoe vaak de lus moet worden uitgevoerd om waarden van een array in cellen op te slaan .

  • Stap 4: Declareer een andere variabele als geheel getal om FOR-lus in VBA te schrijven.

Code:

Sub Array_Size () Dim MyArray As Variant MyArray = Array ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul") Dim k As Integer For k = 1 to 7 Volgende k End Sub
  • Stap 5: Daar gaan we, we hebben de FOR-lus geopend als beginnend van 1 tot 7, binnen de lus schrijf je de eigenschap CELLS om op te slaan zoals hieronder wordt weergegeven.

Code:

Sub Array_Size () Dim MyArray As Variant MyArray = Array ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul") Dim k As Integer For k = 1 to 7 Cellen (k, 1) .Value = MyArray (k) Volgende k End Sub
  • Stap 6: Ok, voer de code nu regel voor regel uit door op een functietoets F8 te drukken. Als u de eerste keer op de F8-toets drukt, wordt de macro gestart.
  • Stap 7: Druk nu op F8 om naar de regel voor het toewijzen van arraywaarden te springen.
  • Stap 8: Vanaf nu bevat de arraynaam "MyArray" geen waarden. Druk op F8 en alle genoemde waarden worden toegewezen aan de arrayvariabele.
  • Stap 9: Nu begint de lus te lopen en druk 2 keer op de F8-toets om te zien welke waarde we krijgen in cel A1.
  • Oeps !!! Wacht even, onze eerste waarde in de arrayvariabele is “Jan”, maar we hebben het resultaat als de tweede waarde “Feb” terwijl de eerste waardelus nog actief is.
  • Stap 10: Dit komt doordat wanneer uw matrixwaarden worden geteld vanaf nul, niet vanaf 1, dus we de startlus als nul moeten opnemen.
  • Stap 11: Zodra de startpositie van de lus met één is verlaagd, moet ook het einde met 1 worden verminderd, dus maak het einde als 6 in plaats van 7.
  • Stap 12: Zodra de lus begint en eindigt, besloten we nog een aanpassing te doen, dat wil zeggen dat we in de eigenschap CELLS de variabele 'k' hebben gebruikt als de dynamische celkiezer, maar aangezien onze lus begint bij nul, is er geen cel die begint met nul , dus voeg plus 1 toe aan de variabele "k".

Code:

Sub Array_Size () Dim MyArray As Variant MyArray = Array ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul") Dim k As Integer For k = 0 to 6 Cellen (k + 1, 1) .Value = MyArray (k) Volgende k End Sub
  • Stap 13: Dus nu bij het uitvoeren van de lus is de eerste keer dat de "k" -waarde nul is, en aangezien we plus 1 hebben toegevoegd, zal de "k" -waarde 1 zijn, dus verwijst naar cel A1.
  • Stap 14: Voer nu de code uit en alle waarden van de array worden in cellen opgeslagen.

In dit geval hebben we de begin- en eindgrootte van de lus echter handmatig bepaald, maar de grootte van de array kan eenvoudig worden bepaald met behulp van de functies LBOUND & UBOUND.

Vind automatisch de grootte van een array

  • Stap 1: Wanneer we het begin- en eindpunt van de lus in het bovenstaande hebben opgenomen, hebben we handmatig het aantal waarden geteld dat de array heeft, maar om de array te starten, gebruikt u de LBOUND-functie en voor deze pass “MyArray” variabelenaam.
  • Stap 2: En om de laatste array-grootte te bepalen, gebruikt u de UBOUND-functie en voert u de array-naam "MyArray" in.

Code:

Sub Array_Size () Dim MyArray As Variant MyArray = Array ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul") Dim k As Integer For k = Lboubd (MyArray ) Naar UBound (MyArray) cellen (k + 1, 1) .Value = MyArray (k) Volgende k End Sub
  • Stap 3: Ok start nu de regel voor regelcode en druk op de F8-toets totdat het het startpunt van de lus bereikt.
  • Stap 4: Plaats nu eerst uw cursor op "LBound (MyArray)" en kijk wat er staat.
  • Stap 5: Het startpuntnummer is nul, plaats nu de cursor op "UBound (MyArray)" en kijk wat er staat.

Er staat dat de array-grootte 6 is, dus zoals we hebben gezegd dat we handmatig beginnen en eindigen, kiezen UBOUND en LBOUND automatisch de nummers voor ons.

Interessante artikelen...