Excel VBA-arrays: Typer og hvordan man bruger dem med eksempler
⚡ Smart opsummering
Excel VBA-arrays gemmer en gruppe af relaterede værdier af samme datatype under ét navn, som tilgås via et indeks. Denne side forklarer statiske og dynamiske arrays, en-, to- og flerdimensionelle arrays, deklarationssyntaks og et bearbejdet eksempel på drikkevarepåfyldning.

Hvad er VBA Array?
Et array er defineret som en hukommelsesplacering, der er i stand til at lagre mere end én værdi. Værdierne skal alle være af samme datatype. Lad os sige, at du vil gemme en liste over dine yndlingsdrikke i en enkelt variabel, du kan bruge VBA-array til at gøre det.
Ved at bruge et array kan du referere til de relaterede værdier med samme navn. Du kan bruge et indeks eller et abonnement til at skelne dem fra hinanden. De individuelle værdier omtales som elementerne i Excel VBA-arrayet. De er sammenhængende fra indeks 0 til den højeste indeksværdi.
Denne vejledning antager, at du bruger Microsoft Excel version 2013. Viden gælder stadig andre versioner af Microsoft Excel også.
Hvad er fordelene ved arrays?
Før man skriver array-kode, er det en god idé at forstå, hvorfor arrays er værd at bruge. Følgende er nogle af fordelene ved en VBA-arrayfunktion.
- Gruppér logisk relaterede data sammen – lad os sige, at du vil gemme en liste over elever. Du kan bruge en enkelt array-variabel, der har separate placeringer for elevkategorier, f.eks. børnehave, primær, sekundær, gymnasieskole osv.
- Arrays gør det nemt at skrive vedligeholdelsesvenlig kode. For de samme logisk relaterede data giver det dig mulighed for at definere en enkelt variabel i stedet for at definere mere end én variabel.
- Bedre ydeevne – når først et array er blevet defineret, er det hurtigere at hente, sortere og ændre data.
Typer af arrays i VBA
VBA understøtter to typer arrays nemlig;
- statisk – Disse typer arrays har et fast forudbestemt antal elementer, der kan lagres. Man kan ikke ændre størrelsen på datatypen for et statisk array. Disse er nyttige, når du vil arbejde med kendte entiteter, såsom antallet af dage i en uge, køn osv.For eksempel: Dim ArrayMonth(12) Som streng
- Dynamisk – Disse typer arrays har ikke et fast forudbestemt antal elementer, der kan lagres. Disse er nyttige, når du arbejder med entiteter, som du ikke kan forudbestemme antallet.For eksempel: Dim ArrayMonth() Som variant
Når du ved, hvilken type der passer til dine data, er næste trin deklarationssyntaksen for hver type.
Syntaks til at erklære arrays
Statiske arrays
Syntaksen til at deklarere Statisk arrays er som følger:
Dim arrayName (n) as datatype
HER,
| Code | Handling |
|---|---|
| Dim arrayName (n) datatype |
|
Dynamiske arrays
Syntaksen til at deklarere DYNAMISK arrays er som følger:
Dim arrayName() as datatype ReDim arrayName(4)
HER,
| Code | Handling |
|---|---|
| Dim arrayName () datatype |
|
| ReDim arrayName(4) |
|
Matrix dimensioner
Et array kan være én dimension, to dimensioner eller multidimensional.
- En dimension: I denne dimension bruger arrayet kun ét indeks. For eksempel et antal mennesker i hver alder.
- To dimensioner: I denne dimension bruger arrayet to indekser. Eksempelvis et antal elever i hver klasse. Det kræver antal klasser og elevnummer i hver klasse
- Multidimension: I denne dimension bruger arrayet mere end to indekser. For eksempel temperaturer i dagtimerne. (30, 40, 20).
Sådan bruger du Array i Excel VBA
Når vi har gennemgået teorien, kan vi sætte et array i gang i en rigtig projektmappe. Vi vil oprette en simpel applikation. Denne applikation udfylder et Excel-ark med data fra en arrayvariabel. I dette VBA-array-eksempel vil vi gøre følgende.
- Opret en ny Microsoft Excel-projektmappe og gem den som Excel Macro-Enabled Workbook (*.xlsm)
- Tilføj en kommandoknap til projektmappen
- Indstil navn og billedtekstegenskaber for kommandoknappen
- Programmering af den VBA, der udfylder Excel-arket
Lad denne øvelse trin for trin,
Trin 1 – Opret en ny projektmappe
- Åbne Microsoft Excel
- Gem den nye projektmappe som VBA Arrays.xlsm
Trin 2 – Tilføj en kommandoknap
Bemærk: Dette afsnit forudsætter, at du er fortrolig med processen med at skabe en grænseflade i excel. Hvis du ikke er bekendt, så læs selvstudiet VBA Excel Form Control & ActiveX Control. Det vil vise dig, hvordan du opretter grænsefladen
- Tilføj en kommandoknap til arket
- Indstil egenskaben name til cmdLoadBeverages
- Indstil billedtekstegenskaben til Indlæs drikkevarer
Din GUI skulle nu være som følger
Trin 3 – Gem filen
- Klik på knappen Gem som
- Vælg Excel Macro-Enabled Workbook (*.xlsm) som vist på billedet nedenfor
Trin 4 – Skriv koden
Vi vil nu skrive koden til vores ansøgning
- Højreklik på knappen Indlæs drikkevarer og vælg vis kode
- Tilføj følgende kode til klikhændelsen for 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
HER,
| Code | Handling |
|---|---|
| Dæmpe drinks (1 til 4) som streng |
|
| Drikkevarer(1) = "Pepsi" |
|
| Sheet1.Cells(1, 1).Værdi = “Mine yndlingsdrikke” |
|
| Ark1.Celler(2, 1).Værdi = Drikkevarer(1) |
|
Tester vores applikation
Når koden er på plads, er det sidste trin at køre knappen og bekræfte, at arrayet udfylder arket. Vælg fanen Udvikler, og sørg for, at knappen Designtilstand er "fra". Indikatoren er, at den vil have en hvid baggrund og ikke en farvet (grønlig) baggrund. (Se billedet nedenfor)
Klik på knappen Indlæs drikkevarer
Du får følgende resultater
Download Excel, der indeholder ovenstående kode
Download ovenstående Excel-fil Code





