Excel VBA ArrayList

Datové struktury se používají k ukládání řady dat v programovacích jazycích. Vázá se spíše na paměť než na adresu. ArrayList je jednou z datových struktur ve Excelu. Ve srovnání s normálními poli v Excelu je ArrayList dynamický. Není tedy nutné žádné počáteční prohlášení o velikosti. ArrayList není součástí VBA, je spojen s externí knihovnou, kterou lze použít s VBA.

ArrayList lze definovat jako seznam umístění v blízkosti paměti. Kde jsou hodnoty získány pomocí indexových čísel. Seznam začíná od indexového čísla '0', první prvek bude vložen do indexu '0' a zbytek je následován 1, 2, 3 atd. ArrayList nabízí spoustu vestavěných operací, třídění, přidávání, odebírání, couvání atd. patří mezi ně.

Přidání knihovny

Chcete-li použít ArrayList do VBA, musí obsahovat knihovnu ' mscorlib.dll', která je dodávána s rozhraním .NET .

  • Stisknutím klávesy F11 nebo klepnutím pravým tlačítkem na název listu získáte okno s kódem. Přejděte do okna kódu VBA, v hlavní nabídce vyberte položku Nástroje .

  • Nabídka nástrojů obsahuje volbu „reference“ a skládá se ze seznamu knihoven, které podporují VBA pro zahrnutí různých objektů. Klikněte na možnost Reference .

  • To vás přenese do okna se seznamem různých knihoven, které podporují VBA a Excel. Přejděte dolů a najděte ' dll'. Zaškrtnutím potvrďte výběr a poté stiskněte tlačítko „OK“.

Nyní je knihovna součástí vašeho kódu VBA a bude podporovat různé metody spojené s ArrayList.

Jak vytvořit VBA ArrayList v Excelu?

Níže jsou uvedeny různé příklady vytvoření VBA ArrayList v Excelu.

Tuto šablonu VBA ArrayList Excel si můžete stáhnout zde - VBA ArrayList Excel Template

Excel VBA ArrayList - Příklad č. 1

Jak přidat hodnoty do ArrayListu pomocí VBA?

ArrayList funguje jako seznam, do kterého můžeme přidávat hodnoty. To se automaticky uloží do různých částí počínaje 0, 1, 2 atd. Hodnoty lze přidat nebo vložit do ArrayListu pomocí metody add.

V tomto příkladu se naučíte, jak přidat seznam hodnot do seznamu polí. Podle níže uvedených kroků přidejte ArrayList pomocí kódu VBA v Excelu.

Krok 1: Chcete-li přidat seznam hodnot do pole ArrayList, vytvořte funkci arraylist1.

Kód:

 Soukromý sub arraylist1 () End Sub 

Krok 2: Nyní chceme zahrnout ArrayList do funkce jako objekt, kde je seznam deklarován jako ArrayList.

Kód:

 Private Sub arraylist1 () Dim alist As ArrayList End Sub 

Krok 3: Protože se jedná o objekt, který chcete použít, musíte vytvořit instanci ArrayList. Nastavit novou instanci pro tento objekt.

Kód:

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

Krok 4: Nyní pomocí vlastnosti 'Add' ArrayList přidá hodnoty do ArrayList. Pokud je seznam přidán do hodnot indexu v pořadí 0, 1, 2, 3 atd.

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: Chcete-li zkontrolovat, zda byly přidané hodnoty do seznamu, vytiskněte hodnoty pole pomocí okna se zprávou. Pro tisk hodnot je vytištěn každý index, protože hodnoty jsou uloženy v těchto oddílech.

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) MsgBox ("\\" & alist (0) & "." & Alist (1) & "." & Alist (2) & "." & Alist (3)) End Sub 

Krok 6: Stisknutím klávesy F5 nebo Run spustíte program a hodnoty se vytisknou níže. Zde je IP adresa uložena v ArrayListu a při tisku jsou hodnoty extra notations zřetězeny, aby vytvořily IP adresu ve správném formátu.

Chyba automatizace ve VBA

Je to běžná chyba, ke které dochází při spuštění ArrayList. K chybě automatizace může dojít „chyba při běhu“ -2146232576 (80131700) Chyba automatizace “

Důvodem je nesprávná verze nainstalovaného rozhraní .NET Framework. Pro práci s ArrayListem musíte mít minimálně .NET 3.5 nebo vyšší verze .NET framework.

Excel VBA ArrayList - Příklad č. 2

Třídění ArrayList pomocí kódu VBA

ArrayList podporuje různé funkce, jako je řazení, obrácení atd. To pomáhá třídit hodnoty vložené do ArrayList. Jakmile přidáte seznam do seznamu polí, je možné vrátit vložený seznam zpět.

Podle níže uvedených kroků seřadíte ArrayList pomocí kódu VBA:

Krok 1: Vytvořte funkci nazvanou arraysort1 k provedení třídění v rámci vložených hodnot do seznamu polí.

Kód:

 Sub arraysort1 () End Sub 

Krok 2: Deklarujte objekt 'arraysort' v ArrayListu. Pomocí tohoto objektu můžete přidávat a třídit hodnoty v ArrayListu.

Kód:

 Sub arraysort1 () Dim arraysort jako ArrayList End Sub 

Krok 3: Podobně jako v prvním příkladu je třeba vytvořit novou instanci deklarovaného objektu. Tuto instanci nastavte jako nový ArrayList.

Kód:

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

Krok 4: Nyní pomocí metody 'Add' vložte prvky do ArrayListu. Což nevlastní žádné pořadí hodnot. Do seznamu byly náhodně vloženy některé hodnoty.

Kód:

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

Krok 5: Chcete-li si všimnout rozdílu v ArrayListu, vytiskněte ArrayList po vložení hodnot a před jejich seřazením.

Kód:

 Sub arraysort1 () Dim arraysort jako 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)) End Sub 

Krok 6: Stisknutím klávesy F5 na klávesnici nebo tlačítkem Spustit v okně kódu spustíte program pro tisk ArrayList. ArrayList je vytištěn ve stejném pořadí, v jakém je vložen, protože čísla indexů používáme ve správném pořadí.

Krok 7: Nyní v tomto seznamu použijte vlastnost sort ArrayList. K třídění vloženého seznamu použijte metodu třídění. Vlastnost sort standardně setřídí seznam hodnot ve vzestupném pořadí.

Kód:

 Sub arraysort1 () Dim arraysort jako 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: Stisknutím klávesy F5 nebo Run pod VBE spustíte tento kód, kde jsou hodnoty seřazeny a vytištěny v pořadí od nejmenší hodnoty po největší.

Excel VBA ArrayList - Příklad č. 3

Reverzní ArrayList pomocí kódu VBA

Pokud chcete obrátit pořadí vložených hodnot v metodě ArrayList, je k dispozici reverzní metoda. Tím se změní pořadí seznamu z jeho aktuálního pořadí. Nyní jsme již seřazili ArrayList v předchozím příkladu, který je ve vzestupném pořadí.

Zkusme obrátit seřazené pole tak, aby bylo sestupné. Použijte k tomu reverzní metodu ArrayList.

Kód:

 Sub arraysort2 () Dim arraysort jako 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 arraysort.Reverse MsgBox (arraysort (0) & vbCrLf & arraysort (1) _ & vbCrLf & arraysort (2) & vbCrLf & arraysort (3) _ & vbCrLf & arraysort (4) & vbCrLf &) () Sub 

Po použití metody obrácení se ArrayList stane v sestupném pořadí a pomocí okna zprávy vytiskne obrácené pole. Tříděný seznam se změní z velké hodnoty na malou hodnotu.

Co si pamatovat

  • ArrayList je svou povahou dynamický; nevyžaduje opětovnou inicializaci.
  • S ArrayListem jsou spojeny různé vestavěné metody.
  • Ve srovnání s maticí je ArrayList snadno použitelný v Excel VBA.
  • Do knihovny VBA by měly být zahrnuty podpůrné knihovny .NET, aby fungovaly s ArrayList.
  • ArrayList je trvalé paměťové místo, které bylo identifikováno pomocí indexových hodnot.

Doporučené články

Toto je průvodce VBA ArrayList. Zde diskutujeme o tom, jak vytvořit ArrayList v Excelu VBA spolu s praktickými příklady a stahovatelnou šablonou Excel. Můžete si také prohlédnout naše další doporučené články -

  1. Průvodce používáním polí VBA
  2. Excel Seřadit podle čísla
  3. Jak seřadit v Excelu pomocí VBA?
  4. Výuky o třídění v Excelu

Kategorie: