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





