Excel VBA ArrayList

Datastrukturer används för att lagra en serie data på programmeringsspråk. Det binder till minnet snarare än till adress. En ArrayList är en av datastrukturerna i Excel. Jämförelse med normala matriser i Excel ArrayList är dynamiskt. Därför behövs ingen initial storleksdeklaration. ArrayList är inte en del av VBA, det är associerat med ett externt bibliotek som kan användas med VBA.

ArrayList kan definieras som en lista med en minnesplats i närheten. Där värdena hämtas med indexnumren. Listan startar från ett indexnummer '0', det första elementet kommer att infogas i '0' -indexet och vila följs av 1, 2, 3, etc. ArrayList erbjuder massor av inbyggda operationer, sortering, lägg till, ta bort, vändning etc. är några av dem.

Lägga till biblioteket

För att använda ArrayList i VBA måste den inkludera biblioteket ' mscorlib.dll' som kommer med .NET-ramverk .

  • Tryck på F11 eller högerklicka på arknamnet för att få kodfönstret. Gå till VBA-kodfönstret, välj Verktyg från huvudmenyn.

  • Verktygsmenyn innehåller alternativet "referenser" och den består av en lista över bibliotek som stöder VBA för att inkludera olika objekt. Klicka på Referensalternativet .

  • Det leder dig till ett fönster med en lista över olika bibliotek som stöder i VBA och Excel. Rulla ner för att hitta ' dll'. Markera markeringen för att bekräfta valet och tryck sedan på 'OK' -knappen.

Nu ingår biblioteket i din VBA-kod och det kommer att stödja olika metoder associerade med en ArrayList.

Hur skapar jag VBA ArrayList i Excel?

Nedan finns de olika exemplen för att skapa VBA ArrayList i Excel.

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

Excel VBA ArrayList - Exempel # 1

Hur lägger man till värden i ArrayList med VBA?

ArrayList fungerar som en lista där vi kan lägga till värden. Detta lagras automatiskt i de olika delarna med början från 0, 1, 2 osv. Värdena kan läggas till eller infogas till ArrayList med hjälp av tilläggsmetoden.

I det här exemplet lär du dig att lägga till en lista med värden i en ArrayList. Följ stegen nedan för att lägga till ArrayList med VBA-kod i Excel.

Steg 1: För att lägga till en lista med värden i en ArrayList, skapa en funktion arraylist1.

Koda:

 Private Sub arraylist1 () Slut Sub 

Steg 2: Nu vill vi inkludera ArrayList i funktionen som ett objekt där en lista förklaras som en ArrayList.

Koda:

 Private Sub arraylist1 () Dim alist As ArrayList End Sub 

Steg 3: Eftersom detta är ett objekt att använda det måste du skapa en instans av ArrayList. Ställ in en ny instans för det här objektet.

Koda:

 Private Sub arraylist1 () Dim alist As ArrayList Ställ alist = New ArrayList End Sub 

Steg 4: Nu använder egenskapen 'Lägg till' för en ArrayList lägger till värdena till ArrayList. Där listan läggs till i indexvärdena i en order 0, 1, 2, 3 etc.

Koda:

 Privat sub arraylist1 () Dim alist As ArrayList Ställ in alist = New ArrayList alist.Tillfoga "192" 'index (0) alist.Tillfoga "168"' index (1) alist.Tillfoga "1" 'index (2) alist.Tillsätt "240" -index (3) Avsluta sub 

Steg 5: För att kontrollera om värdena har lagts till i listan, låt oss skriva ut matrisvärdena med en meddelanderuta. För att skriva ut värdena skrivs varje index ut eftersom värdena lagras i dessa partitioner.

Koda:

 Privat sub arraylist1 () Dim alist As ArrayList Ställ in alist = New ArrayList alist.Tillfoga "192" 'index (0) alist.Tillfoga "168"' index (1) alist.Tillfoga "1" 'index (2) alist.Tillsätt "240" 'index (3) MsgBox ("\\" & alist (0) & "." & Alist (1) & "." & Alist (2) & "." & Alist (3)) Slut sub 

Steg 6: Tryck på F5 eller körknappen för att köra programmet och värdena kommer att skrivas ut som nedan. Här lagras en IP-adress i ArrayList och under utskrift värderas extra notationer för att bilda IP-adressen i rätt format.

Automatiseringsfel i VBA

Det är ett vanligt fel som händer när du kör en ArrayList. Ett automatiseringsfel kan stöta på "Run-time Error" -2146232576 (80131700) Automation Error

Detta beror på att inte rätt version av .NET-ramverket installerats. För att arbeta med ArrayList måste du ha minimum .NET 3.5 eller högre versioner av .NET-ramverk.

Excel VBA ArrayList - Exempel # 2

Sortera ArrayList med VBA-kod

ArrayList stöder olika funktioner som sortering, reversering, etc. detta hjälper till att sortera värdena som är infogade i en ArrayList. När du har lagt till en lista i ArrayList är det möjligt att vända den infogade listan.

Följ stegen nedan för att sortera ArrayList med VBA-kod:

Steg 1: Skapa en funktion som heter arraysort1 för att utföra sorteringen inom de infogade värdena i en ArrayList.

Koda:

 Sub arraysort1 () Slut Sub 

Steg 2: Förklara ett objekt 'arraysort' av ArrayList. Använd detta objekt för att lägga till och sortera värdena i ArrayList.

Koda:

 Sub arraysort1 () Dim arraysort Som ArrayList End Sub 

Steg 3: Liknar det första exemplet måste skapa en ny instans av det deklarerade objektet. Ställ in den här instansen som en ny ArrayList.

Koda:

 Sub arraysort1 () Dim arraysort Som ArrayList Ange arraysort = New ArrayList End Sub 

Steg 4: Nu lägger du till elementen i ArrayList med metoden 'Lägg till'. Vilket inte har någon ordning på värden. Infoga några värden slumpmässigt i listan.

Koda:

 Sub arraysort1 () Dim arraysort Som ArrayList Ställ in arraysort = New ArrayList arraysort.Tillfoga "13" arraysort.Tillfoga "21" arraysort.Tillfoga "67" arraysort.Tillfoga "10" arraysort.Tillfoga "12" arraysort.Tillfoga "45" Slut Sub 

Steg 5: För att notera skillnaden i ArrayList, låt oss skriva ut ArrayList efter att ha lagt in värdena och innan du sorterar den.

Koda:

 Sub arraysort1 () Dim arraysort Som ArrayList Ställ in arraysort = New ArrayList arraysort.Tillfoga "13" arraysort.Tillfoga "21" arraysort.Tillfoga "67" arraysort.Tillsätt "10" arraysort.Tillsätt "12" arraysort.Tillsätt "45" MsgBox (arraysort (0) & vbCrLf & arraysort (1) _ & vbCrLf & arraysort (2) & vbCrLf & arraysort (3) _ & vbCrLf & arraysort (4) & vbCrLf & arraysort (5)) End Sub 

Steg 6: Tryck på F5 på tangentbordet eller kör-knappen i kodfönstret för att köra programmet för att skriva ut ArrayList. ArrayList skrivs ut i samma ordning som det infogas eftersom vi använder indexnumren i rätt ordning.

Steg 7: Till denna lista ska du använda sorteringsegenskapen för ArrayList. Använd sorteringsmetoden för att sortera den infogade listan. Sorteringsegenskapen kommer att sortera listan med värden i stigande ordning som standard.

Koda:

 Sub arraysort1 () Dim arraysort Som ArrayList Ange arraysort = New ArrayList arraysort.Tillfoga "13" arraysort.Tillfoga "21" arraysort.Tillfoga "67" arraysort.Tillsätt "10" arraysort.Tillfoga "12" arraysort.Tillfoga "45" arraysort .Sort MsgBox (arraysort (0) & vbCrLf & arraysort (1) _ & vbCrLf & arraysort (2) & vbCrLf & arraysort (3) _ & vbCrLf & arraysort (4) & vbCrLf & arraysort (5)) 

Steg 8: Tryck på F5 eller Run-knappen under VBE för att köra denna kod, där värdena sorteras och skrivs ut i ordning från minsta värde till största.

Excel VBA ArrayList - Exempel # 3

Återvända ArrayList med VBA-kod

När du vill vända ordningen på infogade värden i en ArrayList-omvänd metod är tillgänglig. Detta kommer att vända listans ordning från dess nuvarande ordning. Nu har vi redan sorterat ArrayList i föregående exempel, som är i stigande ordning.

Låt oss försöka vända den sorterade matrisen för att få den till fallande ordning. Använd omvänd metod för ArrayList för att göra detta.

Koda:

 Sub arraysort2 () Dim arraysort Som ArrayList Ställ in arraysort = New ArrayList arraysort.Tillfoga "13" arraysort.Tillfoga "21" arraysort.Tillfoga "67" arraysort.Tillsätt "10" arraysort.Tillsätt "12" arraysort.Tillfoga "45" arraysort .Sort arraysort.Reverse MsgBox (arraysort (0) & vbCrLf & arraysort (1) _ & vbCrLf & arraysort (2) & vbCrLf & arraysort (3) _ & vbCrLf & arraysort (4) & vbCrLf &) Sub 

Efter att ha använt den omvända metoden kommer ArrayList att komma i fallande ordning och använda meddelanderutan för att skriva ut den omvända arrayen. Den sorterade listan ändras från stort värde till litet värde.

Saker att komma ihåg

  • ArrayList har dynamisk karaktär; det kräver inte ominitiering.
  • Olika inbyggda metoder är associerade med ArrayList.
  • Jämfört med matrisen är ArrayList lätt att använda i Excel VBA.
  • De stödjande .NET-biblioteken bör ingå i VBA för att arbeta med ArrayList.
  • ArrayList är en kontinuerlig minnesplats som identifieras med hjälp av indexvärden.

Rekommenderade artiklar

Detta är en guide till VBA ArrayList. Här diskuterar vi hur man skapar ArrayList i Excel VBA tillsammans med praktiska exempel och nedladdningsbar Excel-mall. Du kan också gå igenom våra andra föreslagna artiklar -

  1. Guide till användning av VBA-matriser
  2. Excel sortera efter nummer
  3. Hur man sorterar i Excel med VBA?
  4. Handledning om sortering i Excel

Kategori: