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: