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,
Kode | 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,
Kode | 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,
Kode | 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-kode
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.