Excel VBA ArrayList

Structurile de date sunt utilizate pentru a stoca o serie de date în limbaje de programare. Se leagă de memorie și nu de adresă. O listă ArrayList este una dintre structurile de date din excel. Compararea cu matricile normale în excel ArrayList este dinamică. Prin urmare, nu este necesară nicio declarație inițială de mărime. ArrayList nu este o parte a VBA, ci este asociată cu o bibliotecă externă care poate fi utilizată cu VBA.

ArrayList poate fi definit ca o listă a locației de memorie din apropiere. În cazul în care valorile sunt preluate folosind numerele de index. Lista pornește de la un număr de index „0”, primul element va fi introdus în indexul „0” și restul este urmat de 1, 2, 3, etc. ArrayList oferă o mulțime de operații încorporate, sortare, adăugare, eliminare, inversare, etc. sunt unele dintre ele.

Adăugarea bibliotecii

Pentru a utiliza ArrayList în VBA trebuie să includă biblioteca „ mscorlib.dll” care vine cu cadru .NET .

  • Apăsați F11 sau faceți clic dreapta pe numele foii pentru a obține fereastra codului. Accesați fereastra codului VBA, din meniul principal selectați Instrumente .

  • Meniul de instrumente conține opțiunea „referințe” și constă dintr-o listă de biblioteci care acceptă VBA pentru includerea diferitelor obiecte. Faceți clic pe opțiunea Referință .

  • Te va conduce către o fereastră cu o listă de diferite biblioteci care acceptă VBA și Excel. Derulați în jos pentru a găsi „ dll”. Marcați marcajul pentru a confirma selecția, apoi apăsați butonul „OK”.

Acum biblioteca este inclusă în codul dvs. VBA și va suporta diferite metode asociate cu un ArrayList.

Cum se creează VBA ArrayList în Excel?

Mai jos sunt diferite exemple pentru a crea VBA ArrayList în Excel.

Puteți descărca acest șablon VBA ArrayList Excel aici - Șablonul VBA ArrayList Excel

Excel VBA ArrayList - Exemplul # 1

Cum să adăugați valori la ArrayList folosind VBA?

ArrayList acționează ca o listă în care putem adăuga valori. Aceasta se va stoca automat în diferite porțiuni începând de la 0, 1, 2, etc. Valorile pot fi adăugate sau introduse în ArrayList folosind metoda add.

În acest exemplu, veți învăța cum să adăugați o listă de valori într-un ArrayList. Urmați pașii de mai jos pentru a adăuga ArrayList folosind VBA Code în excel.

Pasul 1: Pentru a adăuga o listă de valori la un ArrayList, creați un arraylist1 de funcții.

Cod:

 Subraylist privat1 () End Sub 

Pasul 2: Acum dorim să includem ArrayList în funcția ca obiect în care o listă este declarată ArrayList.

Cod:

 Private Sub arraylist1 () Dim alist ca ArrayList End Sub 

Pasul 3: Deoarece acesta este un obiect care să-l folosească, trebuie să creezi o instanță a ArrayList. Setați o nouă instanță pentru acest obiect.

Cod:

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

Pasul 4: Acum, folosind proprietatea „Adăugare” a unui ArrayList se adaugă valorile la ArrayList. În cazul în care lista este adăugată în valorile indexului într-o ordine 0, 1, 2, 3 etc.

Cod:

 Private Sub arraylist1 () Dim alist As ArrayList Set alist = New ArrayList alist.Add "192" 'index (0) alist.Add "168"' index (1) alist.Add "1" 'index (2) alist.Add Indicele "240" '(3) End Sub 

Pasul 5: Pentru a verifica dacă valorile au fost adăugate în listă, să tipărim valorile matricei folosind o casetă de mesaje. Pentru a imprima valorile, fiecare index este tipărit, deoarece valorile sunt stocate în aceste partiții.

Cod:

 Private Sub arraylist1 () Dim alist As ArrayList Set alist = New ArrayList alist.Add "192" 'index (0) alist.Add "168"' index (1) alist.Add "1" 'index (2) alist.Add Index "240" '(3) MsgBox ("\\" & alist (0) & "." & Alist (1) & "." & Alist (2) & "." & Alist (3)) 

Pasul 6: Apăsați butonul F5 sau Run pentru a rula programul, iar valorile vor fi tipărite ca mai jos. Aici o adresă IP este stocată în ArrayList și în timp ce se imprimă valorile notațiilor suplimentare sunt concatenate pentru a forma adresa IP într-un format adecvat.

Eroare de automatizare în VBA

Este o eroare frecventă se întâmplă în timpul rulării unui ArrayList. O eroare de automatizare poate întâmpina „Eroare în timp de execuție” -2146232576 (80131700) Eroare de automatizare ”

Acest lucru se datorează faptului că nu este versiunea corectă a cadrului .NET instalat. Pentru a lucra cu ArrayList trebuie să ai minim .NET 3.5 sau versiunile superioare ale .NET framework.

Excel VBA ArrayList - Exemplul # 2

Sortare ArrayList folosind VBA Code

ArrayList acceptă diferite funcții, precum sortarea, inversarea, etc. Acest lucru ajută la sortarea valorilor inserate într-un ArrayList. Odată ce adăugați o listă în ArrayList este posibil să inversați lista introdusă.

Urmați pașii de mai jos pentru a sorta ArrayList folosind codul VBA:

Pasul 1: Creați o funcție numită arraysort1 pentru a efectua sortarea în cadrul valorilor inserate într-un ArrayList.

Cod:

 Sub arraysort1 () End Sub 

Pasul 2: Declarați un „arraysort” al obiectului ArrayList. Utilizați acest obiect pentru a adăuga și sorta valorile în ArrayList.

Cod:

 Sub arraysort1 () Dim arraysort ca ArrayList End Sub 

Pasul 3: similar cu primul exemplu, trebuie să creezi o nouă instanță a obiectului declarat. Setați această instanță ca un ArrayList nou.

Cod:

 Sub arraysort1 () Dim arraysort As ArrayList Set arraysort = New ArrayList End Sub 

Pasul 4: Acum folosind metoda „Adăugare” introduceți elementele în ArrayList. Ceea ce nu deține nicio ordine pe valori. Au introdus aleatoriu anumite valori în listă.

Cod:

 Sub arraysort1 () Dim arraysort As ArrayList Set arraysort = ArrayList nou arraysort.Add "13" arraysort.Add "21" arraysort.Add "67" arraysort.Add "10" arraysort.Add "12" arraysort.Add "45" End Sub 

Pasul 5: Pentru a observa diferența în ArrayList, să tipărim ArrayList după introducerea valorilor și înainte de a le sorta.

Cod:

 Sub arraysort1 () Dim arraysort As ArrayList Set arraysort = New ArrayList arraysort.Add "13" arraysort.Add "21" arraysort.Add "67" arraysort.Add "10" arraysort.Add "12" arraysort.Add "45" MsgBox (arraysort (0) & vbCrLf & arraysort (1) _ & vbCrLf & arraysort (2) & vbCrLf & arraysort (3) _ & vbCrLf & arraysort (4) & vbCrLf & arraysort (5)) 

Pasul 6: Apăsați F5 pe tastatură sau executați butonul de pe fereastra de cod pentru a rula programul pentru a imprima ArrayList. ArrayList este tipărit în aceeași ordine în care este inserat, deoarece folosim numerele de index în ordinea corectă a acestuia.

Pasul 7: Acum pe această listă aplicați proprietatea de sortare a ArrayList. Utilizați metoda de sortare pentru a sorta lista introdusă. Proprietatea de sortare va sorta lista valorilor în ordine crescătoare în mod implicit.

Cod:

 Sub arraysort1 () Dim arraysort As ArrayList Set arraysort = ArrayList nou arraysort.Add "13" arraysort.Add "21" arraysort.Add "67" arraysort.Add "10" arraysort.Add "12" arraysort.Add "45" arraysort .Sort MsgBox (arraysort (0) & vbCrLf & arraysort (1) _ & vbCrLf & arraysort (2) & vbCrLf & arraysort (3) _ & vbCrLf & arraysort (4) & vbCrLf & arraysort (5)) 

Pasul 8: Apăsați butonul F5 sau Run sub VBE pentru a rula acest cod, unde valorile sunt sortate și tipărite în ordine de la cea mai mică valoare la cea mai mare.

Excel VBA ArrayList - Exemplul # 3

Inversarea ArrayList folosind VBA Code

Când doriți să inversați ordinea valorilor inserate într-o metodă ArrayList inversă este disponibilă. Aceasta va inversa ordinea listei din ordinea sa curentă. Acum am sortat deja ArrayList în exemplul anterior, care este în ordine crescătoare.

Să încercăm să inversăm tabloul sortat pentru a-l face să descarce ordine. Utilizați metoda inversă a ArrayList pentru a face acest lucru.

Cod:

 Sub arraysort2 () Dim arraysort As ArrayList Set arraysort = ArrayList nou arraysort.Add "13" arraysort.Add "21" arraysort.Add "67" arraysort.Add "10" arraysort.Add "12" arraysort.Add "45" arraysort .Sort arraysort.Reverse MsgBox (arraysort (0) & vbCrLf & arraysort (1) _ & vbCrLf & arraysort (2) & vbCrLf & arraysort (3) _ & vbCrLf & arraysort (4) & vbCrLf & arraysort (5) Sub 

După aplicarea metodei inversă, ArrayList va deveni în ordine descrescătoare și va folosi caseta de mesaje pentru a imprima matricea inversată. Lista sortată este schimbată de la o valoare mare la o valoare mică.

Lucruri de amintit

  • ArrayList este de natură dinamică; nu necesită re-inițializare.
  • Diferite metode încorporate sunt asociate cu ArrayList.
  • În comparație cu tabloul, ArrayList este ușor de utilizat în Excel VBA.
  • Bibliotecile .NET de suport ar trebui incluse în VBA pentru a lucra cu ArrayList.
  • ArrayList este o locație de memorie continuă, identificată folosind valorile indexului.

Articole recomandate

Acesta este un ghid pentru VBA ArrayList. Aici vom discuta despre cum să creăm ArrayList în Excel VBA împreună cu exemple practice și șablon Excel descărcabil. De asemenea, puteți parcurge și alte articole sugerate -

  1. Ghid pentru utilizarea VBA Arrays
  2. Sortare Excel după număr
  3. Cum se sortează în Excel folosind VBA?
  4. Tutoriale despre sortarea în Excel

Categorie: