Excel VBA ArrayList

Dátové štruktúry sa používajú na ukladanie série údajov v programovacích jazykoch. Viaže sa skôr na pamäť ako na adresu. ArrayList je jednou z dátových štruktúr vo Exceli. V porovnaní s normálnymi poľami v exceli je ArrayList dynamický. Preto nie je potrebné žiadne počiatočné vyhlásenie o veľkosti. ArrayList nie je súčasťou VBA, je spojený s externou knižnicou, ktorú je možné použiť s VBA.

ArrayList možno definovať ako zoznam umiestnení v blízkosti pamäte. Ak sa hodnoty získavajú pomocou indexových čísel. Zoznam sa začína indexovým číslom „0“, prvý prvok sa vloží do indexu „0“ a po ňom nasledujú 1, 2, 3 atď. ArrayList ponúka množstvo vstavaných operácií, triedenie, pridávanie, odstraňovanie, cúvanie atď. sú medzi nimi niektoré.

Pridanie knižnice

Na použitie súboru ArrayList do VBA je potrebné zahrnúť knižnicu „ mscorlib.dll“, ktorá je súčasťou rámca .NET framework .

  • Stlačením klávesu F11 alebo kliknutím pravým tlačidlom myši na názov hárku získate okno s kódom. Prejdite do okna kódu VBA, z hlavnej ponuky vyberte položku Nástroje .

  • Ponuka nástrojov obsahuje voľbu „referencie“ a pozostáva zo zoznamu knižníc, ktoré podporujú VBA na zahrnutie rôznych objektov. Kliknite na možnosť Referencie .

  • To vás dovedie do okna so zoznamom rôznych knižníc, ktoré podporuje VBA a Excel. Prejdite nadol a vyhľadajte dll. Zaškrtnite voľbu pre potvrdenie výberu, potom stlačte tlačidlo 'OK'.

Knižnica je teraz súčasťou vášho kódu VBA a bude podporovať rôzne metódy spojené s zoznamom polí.

Ako vytvoriť VBA ArrayList v Exceli?

Nižšie sú uvedené rôzne príklady vytvorenia VBA ArrayList v Exceli.

Túto šablónu VBA ArrayList Excel si môžete stiahnuť tu - VBA ArrayList Excel Template

Excel VBA ArrayList - Príklad č. 1

Ako pridať hodnoty do ArrayList pomocou VBA?

ArrayList slúži ako zoznam, do ktorého môžeme pridávať hodnoty. Toto sa automaticky uloží do rôznych častí od 0, 1, 2 atď. Hodnoty sa môžu pridať alebo vložiť do zoznamu polí pomocou metódy pridania.

V tomto príklade sa naučíte, ako pridať zoznam hodnôt do zoznamu polí. Podľa nižšie uvedených krokov pridajte ArrayList pomocou kódu VBA v Exceli.

Krok 1: Ak chcete pridať zoznam hodnôt do zoznamu polí, vytvorte funkciu arraylist1.

kód:

 Súkromný podskupina1 () Koniec podrad 

Krok 2: Teraz chceme zahrnúť ArrayList do funkcie ako objekt, kde je zoznam deklarovaný ako ArrayList.

kód:

 Private Sub arraylist1 () Dim alist As ArrayList End Sub 

Krok 3: Pretože toto je objekt, ktorý chcete použiť, musíte vytvoriť inštanciu ArrayList. Nastavte novú inštanciu pre tento objekt.

kód:

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

Krok 4: Teraz pomocou vlastnosti „Pridať“ ArrayListu sa hodnoty pridajú do ArrayListu. Ak je zoznam pridaný do indexových hodnôt v poradí 0, 1, 2, 3 atď.

kód:

 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 "240" 'index (3) End Sub 

Krok 5: Ak chcete skontrolovať, či boli hodnoty pridané do zoznamu, vytlačme hodnoty polí pomocou okna so správou. Na vytlačenie hodnôt sa vytlačí každý index, pretože hodnoty sa uložia v týchto oddieloch.

kód:

 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)) End Sub 

Krok 6: Stlačením klávesu F5 alebo tlačidla Run spustite program a hodnoty sa vytlačia nižšie uvedeným spôsobom. Tu je IP adresa uložená v ArrayListe a pri tlači hodnôt sú ďalšie zápisky zreťazené, aby vytvorili IP adresu v správnom formáte.

Chyba automatizácie vo VBA

Je bežnou chybou, ktorá sa stane pri spustení ArrayList. Pri automatizovanej chybe sa môže vyskytnúť „run-time error“ -2146232576 (80131700) Chyba automatizácie “

Je to kvôli tomu, že nie je nainštalovaná správna verzia rozhrania .NET Framework. Aby ste mohli pracovať s ArrayListom, musíte mať minimálne .NET 3.5 alebo vyššie verzie .NET framework.

Excel VBA ArrayList - Príklad č. 2

Triedenie zoznamu záznamov pomocou kódu VBA

ArrayList podporuje rôzne funkcie ako triedenie, reverzovanie atď., Ktoré pomáhajú triediť hodnoty vložené do ArrayList. Po pridaní zoznamu do zoznamu polí je možné obrátiť vložený zoznam.

Ak chcete zoradiť zoznam polí pomocou kódu VBA, postupujte podľa nasledujúcich krokov:

Krok 1: Vytvorte funkciu s názvom arraysort1 na vykonanie triedenia v rámci vložených hodnôt do zoznamu polí.

kód:

 Sub arraysort1 () Koniec Sub 

Krok 2: Vyhláste objekt 'arraysort' zo zoznamu ArrayList. Tento objekt použite na pridanie a zoradenie hodnôt v zozname polí.

kód:

 Sub arraysort1 () Dim arraysort ako ArrayList End Sub 

Krok 3: Podobne ako v prvom príklade je potrebné vytvoriť novú inštanciu deklarovaného objektu. Túto inštanciu nastavte ako nový zoznam polí.

kód:

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

Krok 4: Teraz pomocou metódy „Add“ vložte prvky do ArrayListu. Čo nevlastní žiadny poriadok v oblasti hodnôt. Niektoré hodnoty boli náhodne vložené do zoznamu.

kód:

 Sub arraysort1 () Dim arraysort ako ArrayList Set arraysort = New ArrayList arraysort.Add "13" arraysort.Add "21" arraysort.Add "67" arraysort.Add "10" arraysort.Add "12" arraysort.Add "45" End náhradník 

Krok 5: Ak si chcete všimnúť rozdiel v ArrayListe, po vložení hodnôt a pred triedením ich vytlačíme ArrayList.

kód:

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

Krok 6: Stlačením klávesu F5 na klávesnici alebo tlačidlom spustenia v okne kódu spustite program na tlač ArrayList. ArrayList je vytlačený v rovnakom poradí, v akom je vložený, pretože čísla indexov používame v správnom poradí.

Krok 7: Teraz v tomto zozname použite vlastnosť sort ArrayList. Na usporiadanie vloženého zoznamu použite metódu triedenia. Vlastnosť sort zoradí zoznam hodnôt v predvolenom poradí vzostupne.

kód:

 Sub arraysort1 () Dim arraysort ako ArrayList Set arraysort = New ArrayList 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)) End Sub 

Krok 8: Stlačte F5 alebo Run tlačidlo pod VBE na spustenie tohto kódu, kde sú hodnoty zoradené a vytlačené v poradí od najmenšej po najväčšiu.

Excel VBA ArrayList - Príklad č. 3

Obrátenie poľa ArrayList pomocou kódu VBA

Ak chcete obrátiť poradie vložených hodnôt v ArrayList, je k dispozícii metóda obrátenia. Tým sa zmení poradie zoznamu od jeho aktuálneho poradia. Teraz sme už zoradili zoznam polí v predchádzajúcom príklade, ktorý je vzostupne.

Skúsme obrátiť zoradené pole tak, aby bolo zostupné. Použite na to reverznú metódu ArrayList.

kód:

 Sub arraysort2 () Dim arraysort ako ArrayList Set arraysort = New ArrayList arraysort.Add "13" arraysort.Add "21" arraysort.Add "67" arraysort.Add "10" arraysort.Add "12" arraysort.Add "45" arraysort .Strieda arraysort.Reverzia MsgBox (arraysort (0) & vbCrLf & arraysort (1) _ & vbCrLf & arraysort (2) & vbCrLf & arraysort (3) _ & vbCrLf & arraysort (4) & vbCrLf &) () náhradník 

Po použití metódy obrátenia sa ArrayList zmení v zostupnom poradí a pomocou okna správy vytlačí obrátené pole. Zoradený zoznam sa zmení z veľkej hodnoty na malú.

Čo je potrebné pamätať

  • ArrayList je svojou povahou dynamický; nevyžaduje opätovnú inicializáciu.
  • S ArrayListom sú spojené rôzne vstavané metódy.
  • V porovnaní s poľom je ArrayList ľahko použiteľný v Excel VBA.
  • Podporujúce knižnice .NET by mali byť súčasťou VBA, aby mohli pracovať s ArrayList.
  • ArrayList je trvalé pamäťové miesto, ktoré bolo identifikované pomocou indexových hodnôt.

Odporúčané články

Toto je príručka pre VBA ArrayList. Tu diskutujeme o tom, ako vytvoriť ArrayList v Excel VBA spolu s praktickými príkladmi a stiahnuteľnou vynikajúcou šablónou. Môžete si tiež prečítať naše ďalšie navrhované články -

  1. Sprievodca používaním polí VBA
  2. Excel Zoradiť podľa čísla
  3. Ako triediť v Exceli pomocou VBA?
  4. Výuky o triedení v Exceli

Kategórie: