Excel VBA Arrays: Hvad er, hvordan man bruger & Typer af arrays i VBA

Indholdsfortegnelse:

Anonim

Hvad er VBA Array?

Et array er defineret som en hukommelsesplacering, der er i stand til at lagre mere end en 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 en matrix kan du henvise til de relaterede værdier med samme navn. Du kan bruge et indeks eller abonnement til at skelne dem fra hinanden. De enkelte 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 også for andre versioner af Microsoft Excel.

I denne VBA-programmeringsvejledning lærer du-

  • Hvad er fordelene ved arrays?
  • Typer af arrays i VBA
  • Sådan bruges Array i Excel VBA
  • Test af vores ansøgning

Hvad er fordelene ved arrays?

Følgende er nogle af fordelene ved VBA-array-funktionen

  1. Gruppér logisk relaterede data sammen - lad os sige, at du vil gemme en liste over studerende. Du kan bruge en enkelt arrayvariabel, der har separate placeringer for elevkategorier, dvs. børnevenlig have, grundskole, gymnasium, gymnasium osv.
  2. Arrays gør det let at skrive kode, der kan vedligeholdes. For de samme logisk relaterede data giver det dig mulighed for at definere en enkelt variabel i stedet for at definere mere end en variabel.
  3. Bedre ydeevne - når en matrix er 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 af arrays har et fast forudbestemt antal elementer, der kan lagres. Man kan ikke ændre størrelsen på datatypen for en statisk matrix. Disse er nyttige, når du vil arbejde med kendte enheder 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 enheder, som du ikke kan forudbestemme antallet.

    For eksempel : Dim ArrayMonth () som variant

Syntaks for at erklære arrays

Statiske arrays

Syntaksen til erklæring af STATIC- arrays er som følger:

Dim arrayName (n) as datatype

HER,

Kode Handling
Dim arrayName (n) datatype
  1. Det erklærer en matrixvariabel kaldet arrayName med størrelsen n og datatype. Størrelse henviser til antallet af elementer, som arrayet kan gemme.

Dynamiske arrays

Syntaksen for at erklære DYNAMIC- arrays er som følger:

Dim arrayName() as datatypeReDim arrayName(4)

HER,

Kode Handling
Dim arrayName () datatype
  1. Det erklærer en matrixvariabel kaldet arrayName uden at angive antallet af elementer
ReDim arrayName (4)
  1. Det specificerer arraystørrelsen, efter at arrayet er defineret.

Array Dimensions

En matrix kan være en dimension, to dimensioner eller flerdimensionel.

  • Én dimension : I denne dimension bruger arrayet kun et indeks. For eksempel et antal mennesker i hver alder.
  • To dimensioner : I denne dimension bruger arrayet to indekser. For eksempel et antal studerende i hver klasse. Det kræver antal klasser og elevnummer i hver klasse
  • Multi-dimension : I denne dimension bruger arrayet mere end to indekser. For eksempel temperaturer om dagen. (30, 40, 20).

Sådan bruges Array i Excel VBA

Vi opretter en enkel applikation. Denne applikation udfylder et Excel-ark med data fra en matrixvariabel. I dette VBA Array-eksempel vil vi gøre følgende ting.

  • Opret en ny Microsoft Excel-projektmappe, og gem den som Excel Makroaktiveret projektmappe (* .xlsm)
  • Føj en kommandoknap til projektmappen
  • Indstil kommando-knapens navn og billedegenskaber
  • Programmering af VBA, der udfylder Excel-arket

Lad denne øvelse trin for trin,

Trin 1 - Opret en ny projektmappe

  1. Åbn Microsoft Excel
  2. Gem den nye projektmappe som VBA Arrays.xlsm

Trin 2 - Tilføj en kommandoknap

Bemærk: Dette afsnit antager, at du er bekendt med processen med at oprette en grænseflade i Excel. Hvis du ikke er fortrolig, skal du læse vejledningen VBA Excel Form Control & ActiveX Control. Det viser dig, hvordan du opretter grænsefladen

  1. Tilføj en kommandoknap til arket
  1. Indstil navnegenskaben til cmdLoadBeverages
  2. Indstil billedtekstegenskaben til Indlæs drikkevarer

Din GUI skal nu være som følger

Trin 3 - Gem filen

  1. Klik på knappen Gem som
  2. Vælg Excel Makro-aktiveret projektmappe (* .xlsm) som vist på billedet nedenfor

Trin 4 - Skriv koden

Vi skriver nu koden til vores ansøgning

  1. Højreklik på knappen Indlæs drikkevarer, og vælg visningskode
  2. Føj følgende kode til klikhændelsen i cmdLoadBeverages
Private Sub cmdLoadBeverages_Click()Dim Drinks(1 To 4) As StringDrinks(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

Dim drikke (1 til 4) som streng

  • Det erklærer en matrixvariabel kaldet Drinks. Det første matrixindeks er 1, og det sidste matrixindeks er 4.

Drikkevarer (1) = "Pepsi"

  • Tildeler værdien Pepsi til det første matrixelement. Den anden lignende kode gør det samme for de andre elementer i arrayet.

Ark1.Celler (1, 1) .Value = "Mine yndlingsdrikke."

  • Skriver værdien Mine foretrukne drikkevarer i celle adresse A1. Ark1 henviser til arket, og celler (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

Test af vores ansøgning

Vælg fanen udvikler, og sørg for, at knappen Designtilstand er "slukket". Indikatoren er, at den har 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é

  1. En matrix er en variabel, der er i stand til at gemme mere end en værdi
  2. Excel VBA understøtter statiske og dynamiske arrays
  3. Arrays gør det let at skrive vedligeholdelig kode sammenlignet med at erklære mange variabler for data, der er logisk relateret.