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,

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

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

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

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.