Excel VBA ArrayList

Datastrukturer bruges til at gemme en række data på programmeringssprog. Det binder til hukommelsen snarere end til adresse. En ArrayList er en af ​​datastrukturerne i Excel. Sammenligning med normale arrays i excel ArrayList er dynamisk. Derfor er der ikke brug for nogen indledende størrelsesangivelse. ArrayList er ikke en del af VBA, det er forbundet med et eksternt bibliotek, som kan bruges med VBA.

ArrayList kan defineres som en liste over et nærliggende hukommelsessted. Hvor værdierne hentes vha. Indeksnumrene. Listen starter fra et indeksnummer '0', det første element indsættes i '0' indekset og resten følges af 1, 2, 3 osv. ArrayList tilbyder masser af indbyggede operationer, sortering, tilføjelse, fjernelse, vending osv. er nogle af dem.

Tilføjelse af biblioteket

For at bruge ArrayList i VBA er det nødvendigt at inkludere biblioteket ' mscorlib.dll', som leveres med .NET framework .

  • Tryk på F11 eller højreklik på arknavnet for at få kodevinduet. Gå til VBA-kodevinduet, vælg Værktøjer fra hovedmenuen.

  • Værktøjsmenuen indeholder muligheden 'referencer', og den består af en liste over biblioteker, der understøtter VBA til inkludering af forskellige objekter. Klik på Referenceindstillingen .

  • Det fører dig til et vindue med en liste over forskellige biblioteker, der understøtter i VBA og Excel. Rul ned for at finde ' dll'. Marker for at bekræfte valget, og tryk derefter på 'OK' -knappen.

Nu er biblioteket inkluderet i din VBA-kode, og det understøtter forskellige metoder, der er forbundet med en ArrayList.

Sådan oprettes VBA ArrayList i Excel?

Nedenfor er de forskellige eksempler på oprettelse af VBA ArrayList i Excel.

Du kan downloade denne VBA ArrayList Excel-skabelon her - VBA ArrayList Excel-skabelon

Excel VBA ArrayList - Eksempel # 1

Sådan tilføjes værdier til ArrayList ved hjælp af VBA?

ArrayList fungerer som en liste, hvor vi kan tilføje værdier. Dette gemmes automatisk i de forskellige dele startende fra 0, 1, 2 osv. Værdierne kan tilføjes eller indsættes til ArrayList ved hjælp af tilføjelsesmetoden.

I dette eksempel lærer du, hvordan du tilføjer en liste over værdier i en ArrayList. Følg nedenstående trin for at tilføje ArrayList ved hjælp af VBA-kode i Excel.

Trin 1: For at tilføje en liste over værdier til en ArrayList skal du oprette en funktion arraylist1.

Kode:

 Private Sub arraylist1 () End Sub 

Trin 2: Nu ønsker vi at inkludere ArrayList i funktionen som et objekt, hvor en liste er erklæret som en ArrayList.

Kode:

 Private Sub arraylist1 () Dim alist Som ArrayList End Sub 

Trin 3: Da dette er et objekt at bruge det, skal du oprette en forekomst af ArrayList. Angiv en ny forekomst til dette objekt.

Kode:

 Private Sub arraylist1 () Dim alist Som ArrayList Set alist = New ArrayList End Sub 

Trin 4: Brug af egenskaben 'Tilføj' i en ArrayList tilføjer nu værdierne til ArrayList. Hvor listen føjes til indeksværdierne i en rækkefølge 0, 1, 2, 3 osv.

Kode:

 Privat sub arraylist1 () Dim alist Som ArrayList Sæt alist = New ArrayList alist.Tilføj "192" 'indeks (0) alist.Tilføj "168"' indeks (1) alist.Tilføj "1" 'indeks (2) alist.Tilføj "240" 'indeks (3) Slutund 

Trin 5: For at kontrollere, om værdierne blev tilføjet til listen, lad os udskrive matrixværdierne ved hjælp af en meddelelsesboks. For at udskrive værdierne udskrives hvert indeks, da værdierne gemmes i disse partitioner.

Kode:

 Privat sub arraylist1 () Dim alist Som ArrayList Sæt alist = New ArrayList alist.Tilføj "192" 'indeks (0) alist.Tilføj "168"' indeks (1) alist.Tilføj "1" 'indeks (2) alist.Tilføj "240" 'indeks (3) MsgBox ("\\" & alist (0) & "." & Alist (1) & "." & Alist (2) & "." & Alist (3)) End Sub 

Trin 6: Tryk på F5 eller kør-knappen for at køre programmet, og værdierne udskrives som nedenfor. Her gemmes en IP-adresse i ArrayList, og under udskrivning samles ekstra notationer for at danne IP-adressen i et korrekt format.

Automationsfejl i VBA

Det er en almindelig fejl, der opstår, mens du kører en ArrayList. En automatiseringsfejl kan støde på 'Kørselsfejl' -2146232576 (80131700) Automationsfejl '

Dette skyldes ikke den rigtige version af .NET-rammen installeret. For at arbejde med ArrayList skal du have minimum .NET 3.5 eller de højere versioner af .NET framework.

Excel VBA ArrayList - eksempel # 2

Sortering af ArrayList ved hjælp af VBA-kode

ArrayList understøtter forskellige funktioner som sortering, reversering osv. Dette hjælper med at sortere værdierne indsat i en ArrayList. Når du har tilføjet en liste til ArrayList, er det muligt at vende den indsatte liste.

Følg nedenstående trin for at sortere ArrayList ved hjælp af VBA-kode:

Trin 1: Opret en funktion kaldet arraysort1 for at udføre sorteringen inden for de indsatte værdier i en ArrayList.

Kode:

 Sub arraysort1 () End Sub 

Trin 2: Angiv et objekt 'arraysort' af ArrayList. Brug dette objekt til at tilføje og sortere værdierne i ArrayList.

Kode:

 Sub arraysort1 () Dim arraysort Som ArrayList End Sub 

Trin 3: Ligner det første eksempel nødvendigt at oprette en ny forekomst af det deklarerede objekt. Indstil denne instans som en ny ArrayList.

Kode:

 Sub arraysort1 () Dim arraysort Som ArrayList Sæt arraysort = New ArrayList End Sub 

Trin 4: Indsæt nu elementerne i ArrayList ved hjælp af 'Tilføj' -metoden. Hvilket ikke har nogen rækkefølge på værdier. Indsæt tilfældigt nogle værdier i listen.

Kode:

 Sub arraysort1 () Dim arraysort Som ArrayList Indstil arraysort = New ArrayList arraysort.Tilføj "13" arraysort.Tilføj "21" arraysort.Tilføj "67" arraysort.Tilføj "10" arraysort.Tilføj "12" arraysort.Tilføj "45" End Sub 

Trin 5: For at bemærke forskellen i ArrayList, lad os udskrive ArrayList efter indsættelse af værdierne og inden sortering.

Kode:

 Sub arraysort1 () Dim arraysort Som ArrayList Sæt arraysort = New ArrayList arraysort.Tilføj "13" arraysort.Tilføj "21" arraysort.Tilføj "67" arraysort.Tilføj "10" arraysort.Tilføj "12" arraysort.Tilføj "45" MsgBox (arraysort (0) & vbCrLf & arraysort (1) _ & vbCrLf & arraysort (2) & vbCrLf & arraysort (3) _ & vbCrLf & arraysort (4) & vbCrLf & arraysort (5)) End Sub 

Trin 6: Tryk på F5 på tastaturet eller kør knappen i kodevinduet for at køre programmet til udskrivning af ArrayList. ArrayList udskrives i samme rækkefølge som det indsættes, da vi bruger indeksnumrene i den rigtige rækkefølge.

Trin 7: Nu anvendes denne egenskab til ArrayList på denne liste. Brug sorteringsmetoden til at sortere den indsatte liste. Sorteringsejendommen sorterer som standard listen over værdier i stigende rækkefølge.

Kode:

 Sub arraysort1 () Dim arraysort Som ArrayList Set arraysort = New ArrayList arraysort.Tilføj "13" arraysort.Tilføj "21" arraysort.Tilføj "67" arraysort.Tilføj "10" arraysort.Tilføj "12" arraysort.Tilføj "45" arraysort .Sort MsgBox (arraysort (0) & vbCrLf & arraysort (1) _ & vbCrLf & arraysort (2) & vbCrLf & arraysort (3) _ & vbCrLf & arraysort (4) & vbCrLf & arraysort (5)) End Sub 

Trin 8: Tryk på F5 eller Run-knappen under VBE for at køre denne kode, hvor værdierne sorteres og udskrives i rækkefølge fra mindste værdi til største.

Excel VBA ArrayList - eksempel # 3

Omvendt ArrayList ved hjælp af VBA-kode

Når du vil vende rækkefølgen af ​​indsatte værdier i en ArrayList-omvendt metode er tilgængelig. Dette vil vende rækkefølgen af ​​listen fra dens aktuelle rækkefølge. Nu har vi allerede sorteret ArrayList i det forrige eksempel, som er i stigende rækkefølge.

Lad os prøve at vende det sorterede array for at gøre det faldende rækkefølge. Brug den omvendte metode til ArrayList til at gøre dette.

Kode:

 Sub arraysort2 () Dim arraysort Som ArrayList Sæt arraysort = New ArrayList arraysort.Tilføj "13" arraysort.Tilføj "21" arraysort.Tilføj "67" arraysort.Tilføj "10" arraysort.Tilføj "12" arraysort.Tilføj "45" arraysort .Sort arraysort.Reverse MsgBox (arraysort (0) & vbCrLf & arraysort (1) _ & vbCrLf & arraysort (2) & vbCrLf & arraysort (3) _ & vbCrLf & arraysort (4) & vbCrLf & arrays) Sub 

Efter anvendelse af den omvendte metode vil ArrayList blive i faldende rækkefølge og bruge meddelelsesboksen til at udskrive den omvendte matrix. Den sorterede liste ændres fra stor værdi til lille værdi.

Ting at huske

  • ArrayList er dynamisk. det kræver ikke geninitialisering.
  • Forskellige indbyggede metoder er forbundet med ArrayList.
  • Sammenlignet med matrixen er ArrayList let at bruge i Excel VBA.
  • De understøttende .NET-biblioteker skal inkluderes i VBA for at arbejde med ArrayList.
  • ArrayList er en fortsættende hukommelsesplacering, der identificeres ved hjælp af indeksværdier.

Anbefalede artikler

Dette er en guide til VBA ArrayList. Her diskuterer vi, hvordan man opretter ArrayList i Excel VBA sammen med praktiske eksempler og downloadbar excel-skabelon. Du kan også gennemgå vores andre foreslåede artikler -

  1. Vejledning til brug af VBA-arrays
  2. Excel Sorter efter nummer
  3. Hvordan man sorterer i Excel ved hjælp af VBA?
  4. Tutorials om sortering i Excel

Kategori: