VBA-arrangemang i Excel - Hur arbetar man med arrays-funktion i VBA?

Innehållsförteckning

I VBA arrays används för att definiera gruppen objekt tillsammans, 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

Koda:

Sub Array_Ex () Dim x As Integer Dim y As Integer x = 1 y = 2 Range ("A1"). Värde = x Range ("A2"). Value = y End 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-matrisfunktionsexemplet 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:

Under 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. en 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, har vi istället tilldelat det sista värdet på VBA-arrayen med VBA Redim-funktionen. Redim innehar det sista värdet av matrisen 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 låter Excel 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 ändå bara få Jan, inte nästa månad, februari. Så 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 en matrisformel. Så håll Ctrl + Skift + Enter. Vi skulle ha alla 12 månaders namn.

Saker att komma ihåg

  • Det finns två fler arraytyper tillgängliga, dvs. tvådimensionell array och multidimensionell array.
  • Arrayer börjar från 0, inte från 1. Noll betyder första raden och den första kolumnen.
  • Matrisen är ett stort ämne. Du måste förstå det för att gå vidare till nästa nivå.
  • Arrayvariabeln 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 en dynamisk array-typ.

Intressanta artiklar...