VBA-arrays i Excel - Hvordan arbejder man med arrays-funktion i VBA?

Indholdsfortegnelse

I VBA arrays bruges til at definere gruppen af ​​objekter sammen, der er ni forskellige array-funktioner i VBA, og de er ARRAY, ERASE, FILTER, ISARRAY, JOIN, LBOUND, REDIM, SPLIT og UBOUND, alle disse er indbyggede funktioner til array i VBA giver Array-funktionen os værdien for det givne argument.

Excel VBA Array-funktion

Array-funktion er en samling af værdier i en enkelt variabel. Vi kan levere en matrix til en underrutine i VBA, funktioner og egenskaber. VBA-arrays er en af ​​de ofte anvendte teknikker til at gemme mere end en værdi i variablen.

Eksempler på Excel VBA Array-funktion

I stedet for at erklære mange variabler og gemme værdierne kan vi bruge Excel VBA-array til at gemme værdien i en enkelt variabel selv. Se f.eks. Nedenstående eksempel

Kode:

Under Array_Ex () Dim x Som heltal Dim y Som heltal x = 1 y = 2 Område ("A1"). Værdi = x Område ("A2"). Værdi = y Afslut sub

I ovenstående eksempel har jeg deklareret to variabler kaldet x & y. X holder 1 som værdi, og Y holder 2 som værdi.

Se nu på Excel VBA-matrixfunktionseksemplet med en enkelt variabel.

Kode:

Under Array_Ex () Dim x (1 til 2) Som heltalsområde ("A1"). Værdi = x (1) Område ("A2"). Værdi = x (2) Afslut sub

Nu, hvis du kører denne VBA-kode, ville vi have værdier i celle A1 & A2.

Arrayvariabler returnerede resultatet som nul. Dette skyldes, at vi lige har erklæret variabler som to, men vi har ikke tildelt nogen værdier til disse variabler. Så vi er nødt til at tildele værdier til disse variabler.

Kode:

Underarray_Ex () Dim x (1 til 2) Som heltal x (1) = 10 x (2) = 20 Område ("A1"). Værdi = x (1) Område ("A2"). Værdi = x (2 ) Afslut sub

Kør nu koden for at få resultater.

Før vi indtaster værdierne af arrayvariabler til celler, skal vi tildele værdien til de deklarerede arrayvariabler, som vi tildelte variablerne x (1) = 10 & x (2) = 20.

Eksempel # 1 - Indsæt serienumre ved hjælp af statisk matrix

Lad os se på eksemplet med at bruge et statisk array til at indsætte serienumre. Dette er meget som det foregående.

Kode:

Sub StaticArray_Ex () Dim x (1 til 5) Som heltal x (1) = 10 x (2) = 20 x (3) = 30 x (4) = 40 x (5) = 50 Område ("A1"). Værdi = x (1) Område ("A2"). Værdi = x (2) Område ("A3"). Værdi = x (3) Område ("A4"). Værdi = x (4) Område ("A5" Værdi = x (5) Afslut sub

Kør nu denne kode for at indsætte serienumre.

Eksempel 2 - Indsæt serienumre ved hjælp af dynamisk matrix

Nu ser vi den anden type array, dvs. et dynamisk array

Kode:

Sub DynamicArray_Ex () Dim x () As Integer ReDim x (5) x (1) = 10 x (2) = 20 x (3) = 30 x (4) = 40 x (5) = 50 Range ("A1" Værdi = x (1) Område ("A2"). Værdi = x (2) Område ("A3"). Værdi = x (3) Område ("A4"). Værdi = x (4) Område (" A5 "). Værdi = x (5) Afslut sub

Kør nu denne kode for at få resultatet af serienumre. Vi får det samme resultat som det forrige.

Hvis du bemærker, at vi ikke har leveret arrayets længde, mens vi erklærer variablen, har vi i stedet tildelt den sidste værdi af VBA-arrayet ved hjælp af VBA Redim-funktionen. Redim har den sidste værdi af det array, der skal sendes.

Eksempel # 3 - Opret en funktion Indsæt månedsnavne ved hjælp af Array

Vi har set, hvordan man arbejder med arrays i VBA. Nu vil vi se, hvordan vi arbejder med en matrix for at oprette en VBA-funktion i Excel. Funktionen er intet andet end en brugerdefineret funktion i VBA. Bortset fra at bruge indbyggede funktioner giver Excel VBA os også mulighed for at oprette vores egne funktioner.

Kode:

Funktionsliste_Of_Months () List_Of_Months = Array ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov "," Dec ") Slutfunktion

Nedenstående kode opretter en funktion, der kan indsætte måneder i vores excel-ark.

Kopier og indsæt nedenstående kode til dit modul.

Gem nu denne kode, og luk VBA Editor. Når du har lukket VBA-editoren, skal du gå til regnearket og skrive den formel, vi lige har oprettet, og du skal se formlen kaldet List_Of_Months i dit regneark.

Åbn formlen, og tryk på Enter. Vi får navnet på den første måned, dvs. Jan.

Hvis du indsætter formlen en gang til, får vi stadig kun Jan, ikke den næste måned, februar. Så vælg først 12 kolonner i en række.

Åbn nu formlen i D1-celle.

Da vi har oprettet formlen med arrayet, skal vi kun lukke formlerne som en arrayformel. Så hold Ctrl + Shift + Enter. Vi ville have alle 12-måneders navne.

Ting at huske

  • Der er to flere arraytyper til rådighed, dvs. todimensionalt array & multidimensionalt array.
  • Arrays starter fra 0, ikke fra 1. Nul betyder den første række og den første kolonne.
  • Matrixen er et stort emne. Du er nødt til at forstå det for at komme videre til det næste niveau.
  • Arrayvariablen vil være en, der indeholder mange data, hver gang den går videre til næste niveau.
  • Redim bruges til at gemme den sidste længde af arrayet i en dynamisk array-type.

Interessante artikler...