VBA Arrays-funktion i Excel

I VBA arrays används för att definiera gruppen objekt ihop, det finns nio olika arrayfunktioner i VBA och de är ARRAY, ERASE, FILTER, ISARRAY, JOIN, LBOUND, REDIM, SPLIT och UBOUND, alla dessa är inbyggda funktioner för array i VBA ger Array-funktionen oss värdet för det givna argumentet.

Excel VBA Array-funktion

Array-funktionen är en samling värden i en enda variabel. Vi kan leverera en matris till en underrutin i vba, funktioner och egenskaper. VBA Arrays är en av de ofta använda teknikerna för att lagra mer än ett värde i variabeln.

Exempel på Excel VBA Array-funktion

Istället för att deklarera många variabler och lagra värdena kan vi använda Excel VBA-arrayen för att lagra värdet i en enda variabel. Se till exempel exemplet nedan

Du kan ladda ner denna VBA Array Excel-mall här - VBA Array Excel-mall

Koda:

 Sub Array_Ex () Dim x Som heltal Dim y Som heltal x = 1 y = 2 Område ("A1"). Värde = x Område ("A2"). Värde = y Slut Sub 

I exemplet ovan har jag deklarerat två variabler som heter x & y. X håller 1 som värdet och Y håller 2 som värdet.

Titta nu på Excel VBA-arrayfunktionsexemplet med en enda variabel.

Koda:

 Sub Array_Ex () Dim x (1 till 2) Som heltalsområde ("A1"). Värde = x (1) Område ("A2"). Värde = x (2) Avsluta sub 

Nu om du kör den här VBA-koden skulle vi ha värden i cellerna A1 och A2.

Arrayvariabler returnerade resultatet som noll. Detta beror på att vi just har förklarat variabler som två men vi har inte tilldelat några värden till dessa variabler. Så vi måste tilldela värden till dessa variabler.

Koda:

 Sub Array_Ex () Dim x (1 till 2) Som heltal x (1) = 10 x (2) = 20 Område ("A1"). Värde = x (1) Område ("A2"). Värde = x (2 ) Avsluta sub 

Kör nu koden för att få resultat.

Innan vi anger värdena för arrayvariabler till celler måste vi tilldela värdet till de deklarerade arrayvariablerna som vi tilldelade variablerna x (1) = 10 & x (2) = 20.

Exempel nr 1 - Infoga serienummer med statisk matris

Låt oss titta på exemplet med att använda en statisk matris för att infoga serienummer. Det här är ungefär som det föregående.

Koda:

 Sub StaticArray_Ex () Dim x (1 till 5) Som heltal x (1) = 10 x (2) = 20 x (3) = 30 x (4) = 40 x (5) = 50 Område ("A1"). Värde = x (1) Område ("A2"). Värde = x (2) Område ("A3"). Värde = x (3) Område ("A4"). Värde = x (4) Område ("A5" Värde = x (5) Avsluta sub 

Kör nu den här koden för att infoga serienummer.

Exempel # 2 - Infoga serienummer med dynamisk matris

Nu ser vi den andra typen av array, dvs. dynamisk array

Koda:

 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ärde = x (1) Område ("A2"). Värde = x (2) Område ("A3"). Värde = x (3) Område ("A4"). Värde = x (4) Område (" A5 "). Värde = x (5) Slut Sub 

Kör nu den här koden för att få resultatet av serienummer. Vi får samma resultat som det föregående.

Om du märker att vi inte har angett längden på arrayen medan vi deklarerar variabeln istället har vi tilldelat det sista värdet på VBA-arrayen med VBA Redim-funktionen. Redim innehar det sista värdet för den matris som ska skickas.

Exempel # 3 - Skapa en funktion Infoga månadsnamn med hjälp av Array

Vi har sett hur man arbetar med matriser i VBA. Nu kommer vi att se hur man arbetar med en matris för att skapa en VBA-funktion i Excel. Funktionen är inget annat än en användardefinierad funktion i VBA. Förutom att använda inbyggda funktioner excel låter VBA oss också skapa egna funktioner.

Koda:

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

Koden nedan skapar en funktion som kan infoga månader i vårt excel-ark.

Kopiera och klistra in koden nedan till din modul.

Spara nu den här koden och stäng VBA Editor. När du har stängt VBA-redigeraren, gå till kalkylbladet och skriv in formeln vi just har skapat och du ska se formeln som heter List_Of_Months i ditt kalkylblad.

Öppna formeln och tryck enter. Vi får första månadens namn, dvs. Jan

Om du infogar formeln en gång till skulle vi bara få Jan inte nästa månad februari. Välj först 12 kolumner i en rad.

Öppna nu formeln i D1-cellen.

Eftersom vi har skapat formeln med matrisen måste vi stänga formlerna endast som matrisformel. Så håll Ctrl + Skift + Enter. Vi skulle ha alla 12 månaders namn.

Saker att komma ihåg

  • Det finns ytterligare två arraytyper tillgängliga, dvs. tvådimensionell array och flerdimensionell array.
  • Arrayer börjar från 0 och inte från 1. Noll betyder första raden och den första kolumnen.
  • Matrisen är ett stort ämne du behöver för att förstå den för att gå vidare till nästa nivå.
  • Array-variabel kommer att vara en som innehåller mycket data varje gång den går vidare till nästa nivå.
  • Redim används för att lagra den sista längden på arrayen i dynamisk array-typ.