Excel VBA Arrays: Hva er, hvordan du bruker & Typer arrays i VBA

Innholdsfortegnelse:

Anonim

Hva er VBA Array?

En matrise er definert som et minneplass som kan lagre mer enn en verdi. Verdiene må alle være av samme datatype. La oss si at du vil lagre en liste over favorittdrikkene dine i en enkelt variabel, du kan bruke VBA-matrisen til å gjøre det.

Ved å bruke en matrise kan du referere til de relaterte verdiene med samme navn. Du kan bruke en indeks eller et abonnement for å skille dem fra hverandre. De individuelle verdiene blir referert til som elementene i Excel VBA-matrisen. De er sammenhengende fra indeks 0 til den høyeste indeksverdien.

Denne veiledningen forutsetter at du bruker Microsoft Excel versjon 2013. Kunnskapen gjelder fortsatt også for andre versjoner av Microsoft Excel.

I denne VBA programmeringsveiledningen vil du lære-

  • Hva er fordelene med matriser?
  • Typer arrays i VBA
  • Hvordan bruke Array i Excel VBA
  • Testing av søknaden vår

Hva er fordelene med matriser?

Følgende er noen av fordelene som tilbys av VBA array-funksjonen

  1. Gruppere logisk relaterte data sammen - la oss si at du vil lagre en liste over studenter. Du kan bruke en enkelt arrayvariabel som har separate steder for elevkategorier, dvs. snillere hage, grunnskole, videregående, videregående skole osv.
  2. Arrays gjør det enkelt å skrive vedlikeholdbar kode. For de samme logisk relaterte dataene lar den deg definere en enkelt variabel, i stedet for å definere mer enn en variabel.
  3. Bedre ytelse - når en matrise er definert, er det raskere å hente, sortere og endre data.

Typer arrays i VBA

VBA støtter to typer matriser, nemlig;

  • Statisk - Disse typene matriser har et fast forhåndsbestemt antall elementer som kan lagres. Man kan ikke endre størrelsen på datatypen til en statisk matrise. Disse er nyttige når du vil jobbe med kjente enheter, for eksempel antall dager i en uke, kjønn osv.

    For eksempel : Dim ArrayMonth (12) Som streng

  • Dynamisk - Disse typer matriser har ikke et fast forhåndsbestemt antall elementer som kan lagres. Disse er nyttige når du arbeider med enheter som du ikke kan forhåndsbestemme antallet.

    For eksempel : Dim ArrayMonth () som variant

Syntaks for å erklære matriser

Statiske matriser

Syntaksen for å erklære STATISKE matriser er som følger:

Dim arrayName (n) as datatype

HER,

Kode Handling
Dim arrayName (n) datatype
  1. Den erklærer en arrayvariabel kalt arrayName med størrelsen n og datatype. Størrelse refererer til antall elementer som matrisen kan lagre.

Dynamiske matriser

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

Dim arrayName() as datatypeReDim arrayName(4)

HER,

Kode Handling
Dim arraydatatype
  1. Den erklærer en arrayvariabel kalt arrayName uten å spesifisere antall elementer
ReDim arrayName (4)
  1. Den spesifiserer matrisestørrelsen etter at matrisen er definert.

Array Dimensjoner

En matrise kan være en dimensjon, to dimensjoner eller flerdimensjonal.

  • Én dimensjon : I denne dimensjonen bruker matrisen bare en indeks. For eksempel et antall mennesker i hver alder.
  • To dimensjoner : I denne dimensjonen bruker matrisen to indekser. For eksempel et antall studenter i hver klasse. Det krever antall klasser og studentnummer i hver klasse
  • Multidimensjon : I denne dimensjonen bruker matrisen mer enn to indekser. For eksempel temperaturer på dagtid. (30, 40, 20).

Hvordan bruke Array i Excel VBA

Vi vil lage en enkel applikasjon. Denne applikasjonen fyller et Excel-ark med data fra en matrixvariabel. I dette VBA Array-eksemplet skal vi gjøre følgende ting.

  • Opprett en ny Microsoft Excel-arbeidsbok og lagre den som Excel Makroaktivert arbeidsbok (* .xlsm)
  • Legg til en kommandoknapp i arbeidsboken
  • Angi navn og bildetekstegenskaper for kommandoknappen
  • Programmering av VBA som fyller Excel-arket

La oss gjøre denne øvelsen trinn for trinn,

Trinn 1 - Opprett en ny arbeidsbok

  1. Åpne Microsoft Excel
  2. Lagre den nye arbeidsboken som VBA Arrays.xlsm

Trinn 2 - Legg til en kommandoknapp

Merk: Denne delen antar at du er kjent med prosessen med å lage et grensesnitt i Excel. Hvis du ikke er kjent, kan du lese veiledningen VBA Excel Form Control & ActiveX Control. Det viser deg hvordan du lager grensesnittet

  1. Legg til en kommandoknapp på arket
  1. Sett navnegenskapen til cmdLoadBeverages
  2. Sett bildeteksten til Load Beverages

GUI-en din skal nå være som følger

Trinn 3 - Lagre filen

  1. Klikk på lagre som-knappen
  2. Velg Excel Macro-Enabled Workbook (* .xlsm) som vist på bildet nedenfor

Trinn 4 - Skriv koden

Vi vil nå skrive koden for søknaden vår

  1. Høyreklikk på knappen Last inn drikkevarer og velg visningskode
  2. Legg til følgende kode i klikkhendelsen til 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

Dunkle drikker (1 til 4) som streng

  • Den erklærer en matrixvariabel kalt Drinks. Den første matriseindeksen er 1 og den siste matriseindeksen er 4.

Drinker (1) = "Pepsi"

  • Tilordner verdien Pepsi til det første matriseelementet. Den andre lignende koden gjør det samme for de andre elementene i matrisen.

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

  • Skriver verdien Mine favorittdrikker i celleadresse A1. Ark1 viser til arket, og celler (1,1) viser til rad nummer 1 og kolonne 1 (B)

Ark 1. Celler (2, 1). Verdi = Drikke (1)

  • Skriver verdien av matriseelementet med indeks 1 til rad nummer to i kolonne 1

Testing av søknaden vår

Velg utviklerfanen og sørg for at Design-modus-knappen er "av". Indikatoren er at den har en hvit bakgrunn og ikke en farget (grønnaktig) bakgrunn. (Se bildet nedenfor)

Klikk på knappen Last inn drikkevarer

Du får følgende resultater

Last ned Excel som inneholder koden ovenfor

Last ned Excel-koden ovenfor

Sammendrag

  1. En matrise er en variabel som kan lagre mer enn én verdi
  2. Excel VBA støtter statiske og dynamiske matriser
  3. Arrays gjør det enkelt å skrive vedlikeholdbar kode sammenlignet med å erklære mange variabler for data som er logisk relatert.