VBA ArrayList

I vba har vi inbyggt samlingar av datatyper, funktionsvariabler och andra viktiga uttalanden men liknande detta har vi arraylista i VBA där en användare kan ändra och placera egna samlingar av variabler och användardefinierade funktioner i en array, det finns vissa nyckelord för matrislistan för att designa den.

Excel VBA ArrayList

VBA ArrayList är en typ av datastruktur som vi använder i VBA för att lagra data. ArrayList i Excel VBA är en klass som används för att skapa en mängd värden. Detta till skillnad från traditionella arrayer där dessa arrays har fast längd men Array List inte har någon fast längd.

VAB ArrayList ingår inte i VBA-listan utan det är ett externt bibliotek eller objekt som vi behöver för att ställa in referensen innan vi börjar komma åt den.

Arrangemang i VBA är en integrerad del av vilket kodningsspråk som helst. Genom att använda matriser i excel kan vi lagra data med ett enda variabelnamn genom att deklarera "nedre gräns & övre gräns".

Med vanliga matriser måste vi bestämma den nedre gränsen och den övre gränsen för matrisen vi behöver bestämma i god tid vid tidpunkten för deklarationen av variabeln i fall av statiska matriser och i fallet med dynamiska matriser måste vi bestämma längden på array efter att ha deklarerat arrayen med hjälp av "ReDim" uttalande i VBA.

Vi har dock ytterligare ett alternativ där vi kan lagra "N" -antalet värden utan att deklarera nedre och övre gräns. I den här artikeln kommer vi att visa dig om det alternativet, dvs. ”VBA ArrayList”

Så här ställer du in referensen till VBA ArrayList-objekt enligt nedanstående steg.

Steg 1: Gå till Verktyg> Referenser

Steg 2: Objektbibliotekets referensfönster visas framför dig. Välj alternativet “ mscorlib.dll

Steg 3: Klicka också på OK. Nu kan vi komma åt VBA ArrayList.

Exempel på VBA ArrayList i Excel

Nedan följer exemplen på Excel VBA ArrayList.

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

Exempel nr 1 - Skapa instans av VBA ArrayList

Eftersom Excel VBA ArrayList är ett externt objekt måste vi skapa en instans för att börja använda detta. Följ stegen nedan för att skapa instans.

Steg 1: Förklara variabeln som “ ArrayList ”.

Koda:

 Sub ArrayList_Example1 () Dim ArrayValues ​​As ArrayList End Sub 

Steg 2: Eftersom Array List är ett objekt måste vi skapa en ny instans.

Koda:

 Sub ArrayList_Example1 () Dim ArrayValues ​​As ArrayList Set ArrayValues ​​= New ArrayList End Sub 

Steg 3: Nu kan vi fortsätta lagra värden i arrayvariabeln genom att använda "Lägg till" -metoden. I bilden nedan har jag lagt till tre värden.

Koda:

 Sub ArrayList_Example1 () Dim ArrayValues ​​As ArrayList Set ArrayValues ​​= New ArrayList ArrayValues.Add "Hello" 'First Value ArrayValues.Add "Good"' Second Value ArrayValues.Add "Morning" 'Three Value End Sub 

Nu har vi tilldelat tre värden, hur identifierar vi vilka som är de första och hur kan vi visa värdena eller använda dem efter våra behov.

Om du kommer ihåg traditionell arraytyp hänvisar vi till det första arrayvärdet så här "ArrayName (0)"

På samma sätt kan vi också använda samma teknik här.

ArrayValue (0) = “Hej”
ArrayValue (1) = “Bra”
ArrayValue (2) = “Morgon”

Låt oss visa detta i meddelandefältet.

Koda:

 Sub ArrayList_Example1 () Dim ArrayValues ​​As ArrayList Set ArrayValues ​​= New ArrayList ArrayValues.Add "Hello" 'First Value ArrayValues.Add "Good" Second Value ArrayValues.Add "Morning"' Three Value MsgBox ArrayValues ​​(0) & vbNewLues (&) 1) & vbNewLine & ArrayValues ​​(2) End Sub 

Kör nu koden med F5-tangenten eller manuellt då kommer vi att se "Hej", "Bra" och "Morgon" i meddelandefältet VBA.

Så här kan vi lagra valfritt antal värden med Array List Object.

Exempel # 2 - Lagra värden i celler med VBA ArrayList

Låt oss se exemplet med att lagra de tilldelade värdena till cellerna i kalkylbladet. Titta nu på nedanstående VBA-kod.

Koda:

 Sub ArrayList_Example2 () Dim MobileNames As ArrayList, MobilePrice As ArrayList Dim i As Integer Dim k As Integer Set MobileNames = New ArrayList 'Name of the Mobile MobileNames.Add "Redmi" MobileNames.Add "Samsung" MobileNames.Add "Oppo" MobileNames. Lägg till "VIVO" MobileNames.Add "LG" Set MobilePrice = New ArrayList MobilePrice.Add 14500 MobilePrice.Add 25000 MobilePrice.Add 18500 MobilePrice.Add 17500 MobilePrice.Add 17800 End Sub Sub 

Med två matrislistor har jag lagrat namnen på mobilen och priserna på mobilen. Nu måste vi infoga dessa värden i kalkylbladet för detta måste vi använda loopar. Loopen nedan kommer att göra jobbet för mig.

Nedan finns den övergripande koden för att lagra värden i kalkylbladet.

Koda:

 Sub ArrayList_Example2 () Dim MobileNames As ArrayList, MobilePrice As ArrayList Dim i As Integer Dim k As Integer Set MobileNames = New ArrayList 'Name of the Mobile MobileNames.Add "Redmi" MobileNames.Add "Samsung" MobileNames.Add "Oppo" MobileNames. Lägg till "VIVO" MobileNames.Add "LG" Set MobilePrice = New ArrayList MobilePrice.Add 14500 MobilePrice.Add 25000 MobilePrice.Add 18500 MobilePrice.Add 17500 MobilePrice.Add 17800 k = 0 For i = 1 To 5 Cells (i, 1) .Value = MobileNames (k) Cells (i, 2) .Value = MobilePrice (k) k = k + 1 Next i End Sub 

När vi kör koden manuellt eller använder F5-tangenten då får vi resultatet nedan.