Dynamisk matris i Excel VBA - enkla Excel -makron

Innehållsförteckning

Om storleken på din matris ökar och du inte vill fixa storleken på matrisen kan du använda ReDim -nyckelord. Excel VBA ändrar sedan storleken på matrisen automatiskt.

Lägg till några nummer i kolumn A.

Placera en kommandoknapp på ditt kalkylblad och lägg till följande kodrader:

1. Först deklarerar vi matrisen med namnen. Deklarera också två variabler av typen heltal. En namngiven storlek och en som heter i.

Dim nummer () Som heltal, storlek som heltal, i som heltal

Obs! Arrayen har ingen storlek ännu. siffror, storlek och jag väljs slumpmässigt här, du kan använda alla namn. Kom ihåg att hänvisa till dessa namn i resten av din kod.

2. Därefter bestämmer vi storleken på matrisen och lagrar den i variabelstorleken. Du kan använda kalkylbladsfunktionen CountA för detta. Lägg till följande kodrad:

size = WorksheetFunction.CountA (Worksheets (1). Kolumner (1))

3. Vi vet nu storleken på matrisen och vi kan omdimensionera den. Lägg till följande kodrad:

ReDim -nummer (storlek)

4. Därefter initierar vi varje element i matrisen. Vi använder en loop.

För i = 1 Till storlek
tal (i) = Celler (i, 1) .Värde
Nästa i

5. Vi visar det sista elementet i matrisen med en MsgBox.

MSGBox -nummer (storlek)

6. Avsluta Visual Basic Editor och klicka på kommandoknappen på arket.

Resultat:

7. För att tydligt se varför detta kallas en dynamisk array, lägg till ett nummer i kolumn A.

8. Klicka på kommandoknappen igen.

Slutsats: Excel VBA har automatiskt ändrat storleken på denna dynamiska matris.

9. När du använder nyckelordet ReDim raderar du befintlig data som för närvarande lagras i matrisen. Lägg till exempel följande kodrader till den tidigare skapade koden:

ReDim -nummer (3)
MSGBox -nummer (1)

Resultat:

Matrisen är tom.

10. När du vill bevara data i den befintliga matrisen när du redimensionerar den, använd sökordet Bevara.

ReDim Bevara nummer (3)
MSGBox -nummer (1)

Resultat:

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave