Excel VBA-arrays: Hvad er, hvordan man bruger og typer af arrays i VBA
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รธlgende er nogle af fordelene ved VBA-arrayfunktionen
- 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
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
Vi laver en simpel applikation. Denne applikation udfylder et Excel-ark med data fra en matrixvariabel. I dette VBA Array-eksempel skal vi gรธre fรธlgende ting.
- 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" |
|
| Ark1.Cells(1, 1).Value = "Mine yndlingsdrikke." |
|
| Ark1.Celler(2, 1).Vรฆrdi = Drikkevarer(1) |
|
Tester vores applikation
Vรฆlg udviklerfanen, og sรธrg for, at knappen Designtilstand er "deaktiveret". 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
Resumรฉ
- Et array er en variabel, der er i stand til at lagre mere end รฉn vรฆrdi
- Excel VBA understรธtter statiske og dynamiske arrays
- Arrays gรธr det nemt at skrive vedligeholdelsesvenlig kode sammenlignet med at erklรฆre en masse variabler for data, der er logisk relaterede.





