Excel VBA-matriser: Hva er, hvordan du bruker og typer matriser i VBA
Hva er VBA Array?
En matrise er definert som en minneplassering som kan lagre mer enn én 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-array for å 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 omtales som elementene i Excel VBA-matrisen. De er sammenhengende fra indeks 0 til den høyeste indeksverdien.
Denne opplæringen forutsetter at du bruker Microsoft Excel versjon 2013. Kunnskapen gjelder fortsatt andre versjoner av Microsoft Excel også.
Hva er fordelene med arrays?
Følgende er noen av fordelene som tilbys av VBA-array-funksjonen
- Grupper logisk relaterte data sammen – la oss si at du vil lagre en liste over elever. Du kan bruke en enkelt array-variabel som har separate plasseringer for elevkategorier, dvs. barnehage, grunnskole, videregående skole, videregående skole osv.
- 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 én variabel.
- Bedre ytelse – når en matrise er definert, er det raskere å hente, sortere og endre data.
Typer matriser i VBA
VBA støtter to typer arrays nemlig;
- Statisk – Disse typene arrays har et fast forhåndsbestemt antall elementer som kan lagres. Man kan ikke endre størrelsen på datatypen til en statisk array. Disse er nyttige når du vil jobbe med kjente enheter som antall dager i uken, kjønn osv.For eksempel: Dim ArrayMonth(12) Som streng
- Dynamisk – Disse typene arrays 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 å deklarere matriser
Statiske arrays
Syntaksen for å deklarere STATISK arrays er som følger:
Dim arrayName (n) as datatype
HER,
Kode | Handling |
---|---|
Dim arrayName (n) datatype |
|
Dynamiske matriser
Syntaksen for å deklarere DYNAMISK arrays er som følger:
Dim arrayName() as datatype ReDim arrayName(4)
HER,
Kode | Handling |
---|---|
Dim arrayName () datatype |
|
ReDim arrayName(4) |
|
Matrisedimensjoner
En matrise kan være én dimensjon, to dimensjoner eller flerdimensjonal.
- En dimensjon: I denne dimensjonen bruker matrisen bare én indeks. For eksempel et antall mennesker i hver alder.
- To dimensjoner: I denne dimensjonen bruker matrisen to indekser. For eksempel et antall elever i hver klasse. Det krever antall klasser og elevnummer 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 lager en enkel søknad. Denne applikasjonen fyller ut et Excel-ark med data fra en matrisevariabel. I dette VBA Array-eksemplet skal vi gjøre følgende ting.
- Lage en ny Microsoft Excel-arbeidsbok og lagre den som Excel Macro-Enabled Workbook (*.xlsm)
- Legg til en kommandoknapp i arbeidsboken
- Angi navn og bildetekstegenskaper for kommandoknappen
- Programmering av VBA som fyller Excel-arket
La gjøre denne øvelsen trinn for trinn,
Trinn 1 – Opprett en ny arbeidsbok
- Open Microsoft Excel
- Lagre den nye arbeidsboken som VBA Arrays.xlsm
Trinn 2 – Legg til en kommandoknapp
OBS: Denne delen forutsetter at du er kjent med prosessen med å lage et grensesnitt i excel. Hvis du ikke er kjent, les veiledningen VBA Excel-skjemakontroll og ActiveX-kontroll. Den vil vise deg hvordan du lager grensesnittet
- Legg til en kommandoknapp på arket
- Sett name-egenskapen til cmdLoadBeverages
- Sett egenskapen for bildetekst til Last inn drikkevarer
GUI-en din skal nå være som følger
Trinn 3 – Lagre filen
- Klikk på lagre som-knappen
- Velg Excel Macro-Enabled Workbook (*.xlsm) som vist i bildet nedenfor
Trinn 4 – Skriv koden
Vi skal nå skrive koden for søknaden vår
- Høyreklikk på Last inn drikker-knappen og velg vis kode
- Legg til følgende kode i klikkhendelsen til 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 |
---|---|
Dim drinker (1 til 4) som streng |
|
Drinker(1) = "Pepsi" |
|
Ark1.Cells(1, 1).Verdi = "Mine favorittdrikker." |
|
Ark1.Celler(2, 1).Verdi = Drikke(1) |
|
Testing av søknaden vår
Velg utviklerfanen og sørg for at designmodusknappen er "av". Indikatoren er at den vil ha en hvit bakgrunn og ikke en farget (grønnaktig) bakgrunn. (Se bildet under)
Klikk på Last inn drikker-knappen
Du vil få følgende resultater
Last ned Excel som inneholder koden ovenfor
Sammendrag
- En matrise er en variabel som kan lagre mer enn én verdi
- Excel VBA støtter statiske og dynamiske arrays
- Arrays gjør det enkelt å skrive vedlikeholdbar kode sammenlignet med å deklarere mange variabler for data som er logisk relatert.