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

  1. 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.
  2. 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.
  3. 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
  1. Den erklรฆrer en array-variabel kaldet arrayName med stรธrrelsen n og datatype. Stรธrrelse refererer til antallet af elementer, som arrayet kan gemme.

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
  1. Den erklรฆrer en array-variabel kaldet arrayName uden at angive antallet af elementer
ReDim arrayName(4)
  1. Det angiver array-stรธrrelsen, efter at arrayet er blevet defineret.

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

  1. ร…bne Microsoft Excel
  2. 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

  1. Tilfรธj en kommandoknap til arket

Brug Array i Excel VBA

  1. Indstil egenskaben name til cmdLoadBeverages
  2. Indstil billedtekstegenskaben til Indlรฆs drikkevarer

Din GUI skulle nu vรฆre som fรธlger

Brug Array i Excel VBA

Trin 3 โ€“ Gem filen

  1. Klik pรฅ knappen Gem som
  2. Vรฆlg Excel Macro-Enabled Workbook (*.xlsm) som vist pรฅ billedet nedenfor

Brug Array i Excel VBA

Trin 4 โ€“ Skriv koden

Vi vil nu skrive koden til vores ansรธgning

  1. Hรธjreklik pรฅ knappen Indlรฆs drikkevarer og vรฆlg vis kode
  2. 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
  • Den erklรฆrer en array-variabel kaldet Drinks. Det fรธrste array-indeks er 1 og det sidste array-indeks er 4.
Drikkevarer(1) = "Pepsi"
  • Tildeler vรฆrdien Pepsi til det fรธrste array-element. Den anden lignende kode gรธr det samme for de andre elementer i arrayet.
Ark1.Cells(1, 1).Value = "Mine yndlingsdrikke."
  • Skriver vรฆrdien Mine yndlingsdrikke i celleadresse A1. Ark1 henviser til arket, og Cells(1,1) henviser til rรฆkke nummer 1 og kolonne 1 (B)
Ark1.Celler(2, 1).Vรฆrdi = Drikkevarer(1)
  • Skriver vรฆrdien af โ€‹โ€‹matrixelementet med indeks 1 til rรฆkke nummer to i kolonne 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)

Test af en applikation i Excel VBA

Klik pรฅ knappen Indlรฆs drikkevarer

Du fรฅr fรธlgende resultater

Test af en applikation i Excel VBA

Download Excel, der indeholder ovenstรฅende kode

Download ovenstรฅende Excel-fil Code

Resumรฉ

  1. Et array er en variabel, der er i stand til at lagre mere end รฉn vรฆrdi
  2. Excel VBA understรธtter statiske og dynamiske arrays
  3. Arrays gรธr det nemt at skrive vedligeholdelsesvenlig kode sammenlignet med at erklรฆre en masse variabler for data, der er logisk relaterede.

Opsummer dette indlรฆg med: