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.