Array handledning | |
---|---|
Array Mega-Guide | ja |
Få matrisstorlek | |
Tydlig matris | |
Filtermatris | |
Transpose Array | |
Funktion Return Array | |
Ta bort dubbletter | |
Vi täckte en introduktion till variabler och konstanter i våra introduktionshandledning för VBA -datatyper - variabler och konstanter. I den här självstudien ska vi titta på vad matrisvariabler är och hur du kan använda dem i din kod.
Vad är en VBA Array -variabel?
En VBA -matrisvariabel lagrar en lista eller grupp av element. En VBA -arrayvariabel kan också ses som en grupp variabler, lagrade under samma namn och med samma datatyp. Alla element i matrisen måste vara av samma typ. Ett exempel skulle vara en lista över frukter. En array kan lagra text eller siffror. Du hänvisar till ett element i en array med dess indexnummer. Du kan deklarera en matrisvariabel med sökordet Dim, Statisk, Offentlig eller Privat.
Statisk matrisvariabel
En statisk matrisvariabel har en fast storlek eller ett antal objekt i listan. Du skulle deklarera en statisk matrisvariabel på följande sätt:
123456789 | Sub DeclaringAStaticArrayVariable ()Dim skor (1 till 3) som strängSkor (1) = "Stövlar"Skor (2) = "Sandaler"Skor (3) = "Sneakers"Avsluta Sub |
Du kan visa ett visst element i matrisen genom att hänvisa till dess indexnummer som visas i koden nedan:
1234567891011 | Sub DeclaringAStaticArrayVariable ()Dim skor (1 till 3) som strängSkor (1) = "Stövlar"Skor (2) = "Sandaler"Skor (3) = "Sneakers"Debug.Print Shoes (1)Avsluta Sub |
Om du trycker på F5 för att köra din kod skulle du få följande resultat i fönstret Omedelbart:
Dynamisk matrisvariabel
Storleken på en dynamisk matrisvariabel ändras vid körning och ställs in med andra ord endast vid körning. Du deklarerar inte initialt antalet objekt eller element i matrisen som för den statiska matrisvariabeln, men du använder nyckelordet ReDim för att ange storleken eller antalet objekt som en dynamisk matris har. Du kan sedan ändra storlek på din matris med hjälp av sökordet ReDim:
123456789101112131415161718192021 | SubdeklarationADynamicArrayVariable ()Dimma olika grönsaker () som strängReDim olika grönsaker (3)olika grönsaker (1) = "morötter"olika grönsaker (2) = "pumpa"olika grönsaker (3) = "butternut"MsgBox Join (olika grönsaker, vbCr)ReDim olika grönsaker (4)olika grönsaker (1) = "morötter"olika grönsaker (2) = "pumpa"olika grönsaker (3) = "butternut"olika grönsaker (4) = "kål"MsgBox Join (olika grönsaker, vbCr)Avsluta Sub |
När du kör den här koden får du meddelandefältet med alla objekt i matrisen som angavs med hjälp av nyckelordet ReDim, sedan får du en annan meddelanderuta som visar det uppdaterade antalet objekt i matrisen.
Resultatet är: