VBA Array Size - Steg för steg-guide med exempel

I den här artikeln tillhandahåller vi steg för steg guide för att hitta matrisstorleken med hjälp av VBA-kod.

Hur hittar man storleken på en matris med hjälp av VBA-kod?

Följ stegen för att hitta matrisstorleken med hjälp av Excel VBA-kod.

  • Steg 1: Låt oss börja med grundläggande först, förklara en variabel i VBA som variantdatatyp.

Koda:

Sub Array_Size () Dim MyArray As Variant End Sub
  • Steg 2: För den här variabeln använd ARRAY-funktionen och tilldela några värden enligt nedan.

Koda:

Sub Array_Size () Dim MyArray As Variant MyArray = Array ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul") End Sub
  • Steg 3: Okej, vi har tilldelat några värden till arraynamnet "MyArray".

Antag att om vi behöver skriva en slinga för att lagra dessa matrisvärden i celler måste vi bestämma hur många gånger slingan måste köras. Detta beror på antalet värden som matrisen har.

Ok, titta nu på antalet värden som tilldelats arraynamnet “MyArray”, det finns totalt 7 värden som tilldelats arrayen, så nu vet vi hur många gånger loopen måste köras för att lagra värden för en array till celler .

  • Steg 4: Förklara en annan variabel som heltal för att skriva FOR-loop i VBA.

Koda:

Sub Array_Size () Dim MyArray As Variant MyArray = Array ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul") Dim k som heltal För k = 1 till 7 Nästa k Avsluta Sub
  • Steg 5: Nu har vi öppnat FOR-slingan från 1 till 7, inuti loop-skriv CELLS-egenskapen för att lagra som visas nedan.

Koda:

Sub Array_Size () Dim MyArray As Variant MyArray = Array ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul") Dim k som heltal För k = 1 till 7 Celler (k, 1) .Value = MyArray (k) Next k End Sub
  • Steg 6: Ok, kör nu kod för rad genom att trycka på en F8-funktionsknapp. När du trycker på F8-tangenten första gången startar den makrot.
  • Steg 7: Tryck på F8 nu kommer det att hoppa till array-värde tilldelande rad.
  • Steg 8: Från och med nu har arraynamn "MyArray" inga värden i det, tryck på F8 och alla nämnda värden kommer att tilldelas arrayvariabeln.
  • Steg 9: Nu kommer loop att börja springa och tryck på F8-tangenten två gånger och se vilket värde vi får i cell A1.
  • Hoppsan!!! Vänta, vårt första värde i arrayvariabeln är "Jan", men vi har resultatet som det andra värdet "Feb" när fortfarande den första värdeslingan körs.
  • Steg 10: Detta beror på att när dina matrisvärden räknas börjar från noll, inte från 1, så måste vi inkludera startslingan som noll.
  • Steg 11: När startpositionen för slingan har minskats med en liknande slutning bör också minskas med 1, så gör slutet som 6 istället för 7.
  • Steg 12: När slingan som startar och slutar bestämde sig för en justering till måste vi göra, dvs i egenskapen CELLS har vi använt variabeln "k" som den dynamiska cellväljaren men eftersom vår slinga börjar från noll finns det ingen cell som börjar med noll , så lägg till plus 1 till variabeln “k”.

Koda:

Sub Array_Size () Dim MyArray As Variant MyArray = Array ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul") Dim k som heltal För k = 0 till 6 Celler (k + 1, 1) .Value = MyArray (k) Next k End Sub
  • Steg 13: Så nu är slingan första gången "k" -värdet noll, och eftersom vi har lagt till plus 1 kommer "k" -värdet att vara 1 så refererar till cell A1.
  • Steg 14: Kör nu koden och alla värden i matrisen kommer att lagras i celler.

I det här fallet har vi dock bestämt loopens start- och slutstorlek manuellt, men storleken på matrisen kan enkelt bestämmas med LBOUND & UBOUND-funktioner.

Hitta storlek på en matris automatiskt

  • Steg 1: När vi har inkluderat start- och slutpunkt för loop i ovanstående har vi räknat manuellt antalet värden som arrayen har, men för att starta arrayen använder du LBOUND-funktionen och för detta pass "MyArray" variabelnamn.
  • Steg 2: Och för att bestämma den senaste arraystorleken, använd UBOUND-funktionen och ange arraynamnet “MyArray”.

Koda:

Sub Array_Size () Dim MyArray As Variant MyArray = Array ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul") Dim k As Integer For k = Lboubd (MyArray ) Till UBound (MyArray) celler (k + 1, 1). Värde = MyArray (k) Nästa k End Sub
  • Steg 3: Ok, starta nu raden efter linjekod och tryck på F8-tangenten tills den når slingans startpunkt.
  • Steg 4: Placera nu först markören på “LBound (MyArray)” och se vad den säger.
  • Steg 5: Startpunkten som det står är noll, placera nu markören på “UBound (MyArray)” och se vad den säger.

Det står matrisstorlek som 6, så som hur vi har nämnt att starta och sluta manuellt, väljer UBOUND och LBOUND automatiskt siffrorna åt oss.

Intressanta artiklar...