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-mallExempel 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.