Excel VBA Arrays

Excel VBA Array er ikke noe annet enn en variabel som kan inneholde samme datatype. En matrise er en gruppe av en variabel som kan lagre mer enn en variabel. Variabelnavnet vil være det samme, men kan inneholde forskjellige verdier i en enkelt variabel. En VBA-matrise er en type variabel som brukes til å lagre lister over data av samme type.

Hvis vi har 5 celler som har tall, må vi erklære 5 variabler for å inneholde 5 forskjellige tall i området. Men ved å bruke matrise kan vi inneholde 5 forskjellige verdier i en enkelt variabel.

Hvordan bruke Excel VBA-matriser?

La oss forstå hvordan du bruker Excel VBA Arrays og deres typer med noen eksempler.

Du kan laste ned denne VBA Arrays Excel-malen her - VBA Arrays Excel-mal

Eksempel 1

Ta en titt på eksemplet nedenfor. X er en variabel som inneholder datatypen for heltall.

Kode:

 Sub Array_Example1 () Dim x Som heltall x = 1 End Sub 

Tildel nå en verdi på 1 til den deklarerte variabelen x.

La oss sette inn verdien på 1 til cellen A1.

Kode:

 Sub Array_Example1 () Dim x Som heltall x = 1 Område ("A1"). Verdi = x 
 Slutt sub 

X-verdien er lik 1 og i området, A1 blir verdien satt inn som verdien av x dvs. verdien av x er 1. Kjør nå koden ved å bruke F5-tasten eller manuelt for å se resultater.

I eksemplet over inneholder x bare en variabel som er alt. Men hvis jeg vil sette inn 5 påfølgende tall ved å bruke den ene variabelen, må jeg bruke typen array-variabel som kan inneholde mange variabelle verdier i et enkelt variabelnavn.

Eksempel 2

Ta en titt på eksemplet nedenfor. Et variabelt navn er x og datatypen er LANG. Men mens jeg erklærer variabelen i seg selv, har jeg åpnet braketten og nevnt 1 til 5. Dette betyr at variabel x vil inneholde 5 forskjellige typer verdier.

Kode:

 Sub Array_Example () Dim x (1 til 5) Så lang, i som heltal End Sub 

Etter det har jeg tildelt verdiene til hver variabel. X (1) = 20 betyr at den første variabelen skal være lik verdien av 20. X (2) = 25 betyr at den andre variabelen skal være lik verdien av 25 og så videre.

Kode:

 Sub Array_Example () Dim x (1 til 5) så lang, i som heltall x (1) = 20 x (2) = 25 x (3) = 44 x (4) = 78 x (5) = 96 End Sub 

Senere har jeg erklært en variabel til som heter "I", dette er den andre typen av en variabel og inneholder datatypen for heltall .

I neste trinn har jeg brukt FOR looper for å sette inn tildelte tall i matrisen i den første kolonnen. Jeg har satt verdien til variabelen i til 1 og jeg har instruert løkken til å kjøre i 1 til 5 ganger. Når sløyfen kjører for første gang vil i- verdien være lik 1. CELLER (I, 1). Verdi = x (i) betyr dette for første gang at jeg er lik 1 dvs. CELLS (1, 1). Verdi = x (1), i første rad første kolonne (celle A1) vil verdien være den første matrisen ( x (1) ) verdien dvs. 20.

Når sløyfen kjører for andre gang blir verdien 2, dvs. CELLER (2, 1). Verdi = x (2), i den andre raden første kolonne (A2) vil verdien være den andre matrisen ( x (2) ) verdien dvs. 25.

Kode:

 Sub Array_Example () Dim x (1 til 5) så lang, i som heltall x (1) = 20 x (2) = 25 x (3) = 44 x (4) = 78 x (5) = 96 For i = 1 til 5 celler (i, 1). Verdi = x (i) Neste i End Sub 

Som dette når løkkene fortsetter å kjøre, vil verdiene fortsette å endre seg. Når løkkene kjøres for tredje gang A3-celleverdien vil være 44, vil den fjerde gang-løkka A4-celleverdien være 78 når løkkene kjøres for siste gang eller femte gang A5-celleverdien blir 96.

Etter å ha kjørt koden ved å bruke F5-tasten eller manuelt, vil vi få resultater som vist nedenfor.

Typer arrays i Excel

Arrays har forskjellige typer i VBA. Det er fem typer matriser tilgjengelig i Excel.

  • Statisk array
  • Dynamisk array
  • En dimensjonal matrise
  • To dimensjonale array
  • Flerdimensjonal matrise

Statisk array

I denne typen matriser er lengden på arrayet forhåndsbestemt på forhånd og forblir konstant.

Kode:

 Sub Static_Example () Dim ArrayType (1 til 3) Som heltal ArrayType (1) = 0 ArrayType (2) = 1 ArrayType (3) = 2 Cells (1, 1) .Value = ArrayType (1) Cells (1, 2) .Value = ArrayType (2) celler (1, 3) .Value = ArrayType (3) End Sub 

I koden ovenfor er ArrayType-lengden bestemt i god tid på forhånd som 1 til 3, og datatypen er heltall.

Etter å ha kjørt koden ved å bruke F5-tasten eller manuelt, vil vi få resultater som vist nedenfor.

Dynamisk array

I denne typen matriser er lengden på arrayet ikke forhåndsbestemt i god tid.

Kode:

 Sub Dynamic_Example () Dim ArrayType () Som Variant ReDim ArrayType (3) ArrayType (1) = "Mitt navn" ArrayType (2) = "er" ArrayType (3) = "Excel" -celler (1, 1) .Value = ArrayType (1) Cells (1, 2) .Value = ArrayType (2) Cells (1, 3) .Value = ArrayType (3) End Sub 

I denne typen matriser er data Variant, og lengden er ikke bestemt her. Etter å ha erklært variabelen har jeg tildelt lengden på matrisen ved å bruke ReDim- funksjonen. Denne matrisen vil sette inn verdiene som denne Cellen A1 = Mitt navn, Celle B1 = er, Celle C1 = Excel.

En dimensjonal matrise

I denne typen matriser er lengden bestemt, men i en dimensjon fungerer den.

Kode:

 Sub One_Dimensional () Dim OneDimension (1 til 3) As String OneDimension (1) = 40 OneDimension (2) = 50 OneDimension (3) = 15 End Sub 

Vis disse verdien i VBA-meldingsboks.

Kode:

 Sub One_Dimensional () Dim OneDimension (1 til 3) As String OneDimension (1) = 40 OneDimension (2) = 50 OneDimension (3) = 15 MsgBox OneDimension (1) & ", " & OneDimension (2) & ", " & OneDimension (3) End Sub 

Kjør denne koden ved å bruke F5-tasten eller manuelt, så får vi følgende resultat.

To dimensjonale array

I denne typen matriser bestemmes lengden i to dimensjoner, og den fungerer.

Kode:

 Sub Two_Dimensional () Dim TwoDimension (1 til 2, 1 til 2) Så lang Dim i Som heltall Dim j Som heltall TwoDimension (1, 2) = 40 TwoDimension (2, 1) = 50 TwoDimension (1, 1) = 15 TwoDimension (2, 2) = 10 End Sub 

Nå for å lagre disse verdiene i cellene under koden.

Kode:

 Sub Two_Dimensional () Dim TwoDimension (1 til 2, 1 til 2) Så lang Dim i Som heltall Dim j Som heltall TwoDimension (1, 2) = 40 TwoDimension (2, 1) = 50 TwoDimension (1, 1) = 15 TwoDimension (2, 2) = 10 For i = 1 til 2 For j = 1 til 2 celler (i, j) = TwoDimension (i, j) Neste j Neste i End Sub 

Dette vil lagre dataene som nedenfor.

Flerdimensjonal matrise

I denne typen matriser er lengden bestemt, men i flerdimensjon fungerer den.

Kode:

 Sub Multi_Dimensional () Dim TwoDimension (1 til 3, 1 til 2) Så lang Dim i Som heltall Dim j As Integer MultiDimension (1, 1) = 15 MultiDimension (1, 2) = 40 MultiDimension (2, 1) = 50 MultiDimension (2, 2) = 10 MultiDimension (3, 1) = 98 MultiDimension (3, 2) = 54 

Hvis du først ser på koden ovenfor, har jeg erklært arrayen som 1 til 3 og deretter 1 til 2. Dette betyr at når jeg skriver arrayen for det første, kan jeg bare bruke 1 til 3 tall, men i den andre plassen kan jeg bare bruke 1 til 2 ikke 1 til 3.

Ved hjelp av Loop kan vi sette inn verdier i celler. Jeg har brukt to løkker for en flerdimensjonal matrise.

Kode:

 Sub Multi_Dimensional () Dim TwoDimension (1 til 3, 1 til 2) Så lang Dim i Som heltall Dim j As Integer MultiDimension (1, 1) = 15 MultiDimension (1, 2) = 40 MultiDimension (2, 1) = 50 MultiDimension (2, 2) = 10 MultiDimension (3, 1) = 98 MultiDimension (3, 2) = 54 For i = 1 til 3 For j = 1 til 2 celler (i, j) = MultiDimension (i, j) Neste j Neste i End Sub 

Etter å ha kjørt koden ved å bruke F5-tasten eller manuelt, vil vi få resultater som vist nedenfor.

Ting å huske

  • En matrise vil telle verdiene fra null, ikke fra 1.
  • Array (0, 0) betyr første rad første kolonne.
  • Denne excel-makrofilen må lagres som en makroaktivert arbeidsbok.
  • I tilfelle av dynamisk matrise, må vi tildele verdien av matrisen ved å bruke REDIM-funksjonen i VBA.

Anbefalte artikler

Dette har vært en guide til VBA Arrays. Her diskuterte vi typer Arrays i VBA og hvordan du bruker Excel VBA Arrays sammen med noen praktiske eksempler og nedlastbar Excel-mal. Du kan også gå gjennom andre foreslåtte artikler -

  1. FINN funksjon i Excel med eksempler
  2. Hva er VBA-funksjon i Excel?
  3. Guide til VBA Range Object
  4. Hvordan bruker jeg VBA VLOOKUP-funksjon?

Kategori: