Excel VBA-arrayer: Vad är, hur man använder och typer av arrayer i VBA
Vad är VBA Array?
En array definieras som en minnesplats som kan lagra mer än ett värde. Alla värden måste vara av 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 array kan du referera till de relaterade värdena med samma namn. Du kan använda ett index eller ett abonnemang för att skilja dem åt. De individuella värdena hänvisas till som elementen i Excel VBA-matrisen. De är sammanhängande 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 andra versioner av Microsoft Excel likaså.
Vilka är fördelarna med arrayer?
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 med elever. Du kan använda en enda arrayvariabel som har separata platser för elevkategorier, dvs. kinderträdgård, lågstadie, gymnasieskola, gymnasieskola, etc.
- Arrayer gör det enkelt att skriva underhållbar kod. För samma logiskt relaterade data låter den dig definiera en enskild variabel, istället för att definiera mer än en variabel.
- Bättre prestanda – när en array väl har definierats går det snabbare att hämta, sortera och ändra data.
Typer av arrayer i VBA
VBA stöder två typer av arrayer nämligen;
- Statisk – Dessa typer av arrayer har ett fast förutbestämt antal element som kan lagras. Man kan inte ändra storleken på datatypen för en statisk array. 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 arrayer 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örbestämma antalet.Till exempel: Dim ArrayMonth() Som variant
Syntax för att deklarera arrayer
Statiska arrayer
Syntaxen för att deklarera STATISK arrays är som följer:
Dim arrayName (n) as datatype
HÄR,
Koda | Handling |
---|---|
Dim arrayName (n) datatyp |
|
Dynamiska matriser
Syntaxen för att deklarera DYNAMISK arrays är som följer:
Dim arrayName() as datatype ReDim arrayName(4)
HÄR,
Koda | Handling |
---|---|
Dim arrayName () datatyp |
|
ReDim arrayName(4) |
|
Matrisdimensioner
En array kan vara endimensionell, tvådimensionell eller flerdimensionell.
- En dimension: I den här dimensionen använder arrayen endast ett index. Till exempel ett antal personer i varje ålder.
- Två dimensioner: I den här dimensionen använder arrayen två index. Till exempel ett antal elever i varje klass. Det kräver antal klasser och elevnummer i varje klass
- Flerdimensionell: I den här dimensionen använder arrayen mer än två index. Till exempel temperaturer under dagtid. (30, 40, 20).
Hur man använder Array i Excel VBA
Vi kommer att skapa en enkel applikation. Denna applikation fyller 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 Macro-Enabled Workbook (*.xlsm)
- Lägg till en kommandoknapp i arbetsboken
- Ställ in namn och bildtextegenskaper för kommandoknappen
- Programmering av VBA som fyller Excel-arket
Låt göra denna övning steg för steg,
Steg 1 – Skapa en ny arbetsbok
- Öppet Microsoft excel
- Spara den nya arbetsboken som VBA Arrays.xlsm
Steg 2 – Lägg till en kommandoknapp
Obs: Det här avsnittet förutsätter att du är bekant med processen att skapa ett gränssnitt i Excel. Om du inte är bekant, läs handledningen VBA Excel Form Control & ActiveX Control. Det kommer att visa dig hur du skapar gränssnittet
- Lägg till en kommandoknapp på arket
- Ställ in egenskapen name till cmdLoadBeverages
- Ställ in bildtextegenskapen till Ladda drycker
Ditt GUI bör nu vara följande
Steg 3 – Spara filen
- Klicka på knappen Spara som
- Välj Excel Macro-Enabled Workbook (*.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 visa kod
- Lägg till följande kod till klickhändelsen för cmdLoadBeverages
Private Sub cmdLoadBeverages_Click() Dim Drinks(1 To 4) As String Drinks(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 |
---|---|
Dim drycker (1 till 4) som sträng |
|
Drinks(1) = "Pepsi" |
|
Sheet1.Cells(1, 1).Value = "Mina favoritdrycker." |
|
Blad1.Celler(2, 1).Värde = Drycker(1) |
|
Testar vår applikation
Välj utvecklarfliken och se till att knappen Designläge är "av". Indikatorn är att den kommer att ha en vit bakgrund och inte en färgad (grönaktig) bakgrund. (Se bild nedan)
Klicka på knappen Ladda drycker
Du kommer att få 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 arrayer
- Arrayer gör det enkelt att skriva underhållbar kod jämfört med att deklarera många variabler för data som är logiskt relaterade.