Excel VBA Arrays

Excel VBA Array er intet andet end en variabel, der kan indeholde den samme datatype. En matrix er en gruppe af en variabel, der kan gemme mere end en variabel. Variabelnavnet vil være det samme, men kan indeholde forskellige værdier i en enkelt variabel. En VBA-matrix er en type variabel, der bruges til at gemme lister over data af samme type.

Hvis vi har 5 celler, der har tal, skal vi erklære 5 variabler for at indeholde 5 forskellige numre i området. Men ved at bruge array kan vi indeholde 5 forskellige værdier i en enkelt variabel selv.

Sådan bruges Excel VBA-arrays?

Lad os forstå, hvordan du bruger Excel VBA Arrays og deres typer med nogle eksempler.

Du kan downloade denne VBA Arrays Excel-skabelon her - VBA Arrays Excel-skabelon

Eksempel 1

Se på nedenstående eksempel. X er en variabel, der indeholder datatypen for heltal.

Kode:

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

Tildel nu en værdi på 1 til den deklarerede variabel x.

Lad os indsætte værdien 1 til cellen A1.

Kode:

 Sub Array_Example1 () Dim x Som heltal x = 1 Område ("A1"). Værdi = x 
 Afslut under 

X-værdien er lig med 1 og i området, A1 indsættes værdien som værdien af ​​x dvs. værdien af ​​x er 1. Kør nu koden ved hjælp af F5-tasten eller manuelt for at se resultater.

I ovenstående eksempel indeholder x kun en variabel, der er alt. Men hvis jeg vil indsætte 5 på hinanden følgende tal ved hjælp af den enkelte variabel, er jeg nødt til at bruge typen array-variabel, der kan indeholde mange variable værdier i et enkelt variabelnavn.

Eksempel 2

Se nu på nedenstående eksempel. Et variabelt navn er x, og datatypen er LANG. Men mens jeg erklærer variablen selv, har jeg åbnet beslaget og nævnt 1 til 5. Dette betyder, at variabel x vil indeholde 5 forskellige typer værdier.

Kode:

 Sub Array_Example () Dim x (1 til 5) så lang, i som heltal slut sub 

Derefter har jeg tildelt værdierne til hver variabel. X (1) = 20 betyder, at den første variabel skal være lig med værdien af ​​20. X (2) = 25 betyder, at den anden variabel skal være lig med værdien på 25 og så videre.

Kode:

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

Senere har jeg erklæret en mere variabel kaldet “I”, dette er den anden type af en variabel og indeholder datatypen for heltal .

I det næste trin har jeg anvendt FOR sløjfer for at indsætte tildelte numre til matrixen i den første kolonne. Jeg har indstillet værdien af ​​variablen i til 1 og jeg har instrueret løkken til at køre i 1 til 5 gange. Når løkken kører for første gang vil i- værdien være lig med 1. CELLER (I, 1) .værdi = x (i) betyder dette for første gang, at jeg er lig med 1, dvs. CELLER (1, 1) .værdi = x (1), i den første række første kolonne (celle A1) vil værdien være den første array ( x (1) ) værdi, dvs. 20.

Når løkken løber for anden gang i- værdien bliver 2 dvs. CELLER (2, 1) .værdi = x (2), i den anden række første kolonne (A2) vil værdien være den anden array ( x (2) ) -værdi dvs. 25.

Kode:

 Sub Array_Example () Dim x (1 til 5) så lang, i som heltal x (1) = 20 x (2) = 25 x (3) = 44 x (4) = 78 x (5) = 96 For i = 1 til 5 celler (i, 1). Værdi = x (i) Næste i End Sub 

Som dette, når løkkerne fortsætter med at køre, vil værdierne fortsat ændre sig. Når sløjferne kører for tredje gang A3-celleværdi vil være 44, vil den fjerde gang-løbekørsel A4-celleværdi være 78, når sløjferne kører for sidste gang eller femte gang A5-celleværdien er 96.

Efter at have kørt koden ved hjælp af F5-tasten eller manuelt, får vi resultater som vist nedenfor.

Typer af arrays i Excel

Arrays har forskellige typer i VBA. Der er fem typer arrays tilgængelige i Excel.

  • Statisk array
  • Dynamisk array
  • Et dimensionelt array
  • To dimensionelle array
  • Multidimensionel matrix

Statisk array

I denne type array er længden af ​​arrayet forudbestemt på forhånd og forbliver 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 ovenstående kode bestemmes ArrayType-længden i god tid som 1 til 3, og datatypen er heltal.

Efter at have kørt koden ved hjælp af F5-tasten eller manuelt, får vi resultater som vist nedenfor.

Dynamisk array

I denne type array er længden af ​​arrayet ikke forudbestemt i god tid.

Kode:

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

I denne type array er dataene Variant, og længden bestemmes ikke her. Efter at have erklæret variablen har jeg tildelt længden på arrayet ved hjælp af ReDim- funktionen. Denne matrix indsætter værdier som denne Celle A1 = Mit navn, Celle B1 = er, Celle C1 = Excel.

Et dimensionelt array

I denne type array bestemmes længden, men i en dimension fungerer den.

Kode:

 Sub One_Dimensional () Dim OneDimension (1 til 3) Som streng OneDimension (1) = 40 OneDimension (2) = 50 OneDimension (3) = 15 End Sub 

Vis disse værdier i VBA-meddelelsesboks.

Kode:

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

Kør denne kode ved hjælp af F5-nøglen eller manuelt, så får vi følgende resultat.

To dimensionelle array

I denne type array bestemmes længden i to dimensioner, og den fungerer.

Kode:

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

Nu skal du gemme disse værdier i cellerne under koden.

Kode:

 Sub Two_Dimensional () Dim TwoDimension (1 til 2, 1 til 2) Så lang Dim i Som heltal Dim j Som heltal 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) Næste j Næste i End Sub 

Dette vil gemme dataene som nedenfor.

Multidimensionel matrix

I denne type array bestemmes længden, men i multidimension fungerer den.

Kode:

 Under Multi_Dimensional () Dim TwoDimension (1 til 3, 1 til 2) Så lang Dim i som heltal Dim j Som heltal 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å ovenstående kode, har jeg erklæret matrixen som 1 til 3 og derefter 1 til 2. Dette betyder, at når jeg først skriver arrayet, kan jeg kun bruge 1 til 3 numre, men i det andet rum kan jeg kun bruge 1 til 2 ikke 1 til 3.

Ved hjælp af Loop kan vi indsætte værdier i celler. Jeg har brugt to sløjfer til en multidimensionel matrix.

Kode:

 Under Multi_Dimensional () Dim TwoDimension (1 til 3, 1 til 2) Så lang Dim i som heltal Dim j Som heltal 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) Næste j Næste i End Sub 

Efter at have kørt koden ved hjælp af F5-tasten eller manuelt, får vi resultater som vist nedenfor.

Ting at huske

  • En matrix tæller værdierne fra nul, ikke fra 1.
  • Array (0, 0) betyder første række første kolonne.
  • Denne excel-makrofil skal gemmes som en makroaktiveret arbejdsbog.
  • I tilfælde af dynamisk matrix, er vi nødt til at tildele værdien af ​​array ved hjælp af REDIM-funktion i VBA.

Anbefalede artikler

Dette har været en guide til VBA Arrays. Her diskuterede vi typer Arrays i VBA, og hvordan man bruger Excel VBA Arrays sammen med nogle praktiske eksempler og downloadbar excel-skabelon. Du kan også gennemgå vores andre foreslåede artikler -

  1. FIND-funktion i Excel med eksempler
  2. Hvad er VBA-funktion i Excel?
  3. Vejledning til VBA Range Object
  4. Hvordan bruges VBA VLOOKUP-funktion?

Kategori: