Vad är VBA Array?
En matris definieras som en minnesplats som kan lagra mer än ett värde. Värdena måste alla ha samma datatyp. Låt oss säga att du vill lagra en lista över dina favoritdrycker i en enda variabel, du kan använda VBA-array för att göra det.
Genom att använda en matris kan du hänvisa till relaterade värden med samma namn. Du kan använda ett index eller ett abonnemang för att skilja dem åt. De enskilda värdena kallas elementen i Excel VBA-matrisen. De är angränsande från index 0 till det högsta indexvärdet.
Denna handledning förutsätter att du använder Microsoft Excel version 2013. Kunskapen gäller fortfarande även för andra versioner av Microsoft Excel.
I den här VBA-programmeringshandledningen lär du dig-
- Vad är fördelarna med matriser?
- Typer av matriser i VBA
- Hur man använder Array i Excel VBA
- Testar vår ansökan
Vad är fördelarna med matriser?
Följande är några av fördelarna med VBA-arrayfunktionen
- Gruppera logiskt relaterade data tillsammans - låt oss säga att du vill lagra en lista över studenter. Du kan använda en enda arrayvariabel som har separata platser för elevkategorier, dvs. snälla trädgård, grundskola, gymnasium, gymnasium etc.
- Arrayer gör det enkelt att skriva underhållskod. För samma logiskt relaterade data kan du definiera en enda variabel istället för att definiera mer än en variabel.
- Bättre prestanda - när en matris har definierats är det snabbare att hämta, sortera och modifiera data.
Typer av matriser i VBA
VBA stöder två typer av matriser, nämligen;
- Statisk - Dessa typer av matriser har ett fast förutbestämt antal element som kan lagras. Man kan inte ändra storleken på datatypen för en statisk matris. Dessa är användbara när du vill arbeta med kända enheter som antal dagar i veckan, kön etc.
Till exempel : Dim ArrayMonth (12) Som sträng
- Dynamisk - Dessa typer av matriser har inte ett fast förutbestämt antal element som kan lagras. Dessa är användbara när du arbetar med enheter som du inte kan förutbestämma antalet.
Till exempel : Dim ArrayMonth () som variant
Syntax för att deklarera matriser
Statiska matriser
Syntaxen för att deklarera STATIC- matriser är som följer:
Dim arrayName (n) as datatype
HÄR,
Koda | Handling |
Dim arrayName (n) datatyp |
|
Dynamiska matriser
Syntaxen för att deklarera DYNAMISKA matriser är som följer:
Dim arrayName() as datatypeReDim arrayName(4)
HÄR,
Koda | Handling |
Dim arraydatatyp () |
|
ReDim arrayName (4) |
|
Array Dimensions
En matris kan vara en dimension, två dimensioner eller flerdimensionell.
- En dimension : I denna dimension använder matrisen bara ett index. Till exempel ett antal personer i varje ålder.
- Två dimensioner : I denna dimension använder matrisen två index. Till exempel ett antal elever i varje klass. Det kräver antal klasser och studentnummer i varje klass
- Flerdimension : I den här dimensionen använder matrisen mer än två index. Till exempel temperaturer på dagtid. (30, 40, 20).
Hur man använder Array i Excel VBA
Vi skapar en enkel applikation. Denna applikation fyller i ett Excel-ark med data från en matrisvariabel. I detta VBA Array-exempel kommer vi att göra följande saker.
- Skapa en ny Microsoft Excel-arbetsbok och spara den som Excel-makroaktiverad arbetsbok (*. Xlsm)
- Lägg till en kommandoknapp i arbetsboken
- Ställ in kommandoknappens namn och bildtext
- Programmering av VBA som fyller i Excel-arket
Låt göra den här övningen steg för steg,
Steg 1 - Skapa en ny arbetsbok
- Öppna Microsoft Excel
- Spara den nya arbetsboken som VBA Arrays.xlsm
Steg 2 - Lägg till en kommandoknapp
Obs: Detta avsnitt förutsätter att du känner till processen för att skapa ett gränssnitt i Excel. Om du inte är bekant, läs självstudien VBA Excel Form Control & ActiveX Control. Det visar dig hur du skapar gränssnittet
- Lägg till en kommandoknapp i arket
- Ange namnegenskapen till cmdLoadBeverages
- Ställ in textningsegenskapen till Load Beverages
Din GUI ska nu vara som följer
Steg 3 - Spara filen
- Klicka på knappen Spara som
- Välj Excel-makroaktiverad arbetsbok (*. Xlsm) som visas i bilden nedan
Steg 4 - Skriv koden
Vi kommer nu att skriva koden för vår ansökan
- Högerklicka på knappen Ladda drycker och välj visningskod
- Lägg till följande kod i klickhändelsen för cmdLoadBeverages
Private Sub cmdLoadBeverages_Click()Dim Drinks(1 To 4) As StringDrinks(1) = "Pepsi"Drinks(2) = "Coke"Drinks(3) = "Fanta"Drinks(4) = "Juice"Sheet1.Cells(1, 1).Value = "My Favorite Beverages"Sheet1.Cells(2, 1).Value = Drinks(1)Sheet1.Cells(3, 1).Value = Drinks(2)Sheet1.Cells(4, 1).Value = Drinks(3)Sheet1.Cells(5, 1).Value = Drinks(4)End Sub
HÄR,
Koda |
Handling |
Dimma drycker (1 till 4) som strängar |
|
Drycker (1) = "Pepsi" |
|
Sheet1.Cells (1, 1) .Value = "Mina favoritdrycker." |
|
Blad1.Celler (2, 1) .Värde = Drycker (1) |
|
Testar vår ansökan
Välj utvecklarfliken och se till att designläget är "av". Indikatorn är att den har en vit bakgrund och inte en färgad (grönaktig) bakgrund. (Se bilden nedan)
Klicka på knappen Ladda drycker
Du får följande resultat
Ladda ner Excel som innehåller ovanstående kod
Ladda ner ovanstående Excel-kod
Sammanfattning
- En array är en variabel som kan lagra mer än ett värde
- Excel VBA stöder statiska och dynamiska matriser
- Arrays gör det enkelt att skriva underhållskod jämfört med att deklarera många variabler för data som är logiskt relaterade.