Kolekce je datový typ, který uchovává ukládané objekty stejně jako pole (ale různá). Při psaní základních kódů VBA jste museli používat sešity, pracovní listy, rozsahy atd. Všechny jsou sbírkami. V tomto článku se seznámíme se sbírkami VBA.
Co je sbírka ve VBA?
Kolekce je datový typ, který ukládá podobný typ objektů stejně jako pole.
Ale na rozdíl od polí lze jeho velikost podle požadavku dynamicky zvětšovat nebo zmenšovat.
Můžete přidávat, vyhledávat, načítat a odstraňovat položky ze sbírek.
Na rozdíl od polí nemůžete měnit hodnoty položek ve sbírkách. Pokud to chcete, použijte pole jako položku ve sbírce.
Kolekce má 4 vlastnosti nebo metody, které jsou s ní spojené.
Collection.Add Collection.Item Collection.Count Collection.Remove
Prostřednictvím tohoto článku se podíváme na využití těchto vlastností.
Jak vytvořit sbírku ve VBA?
Kolekce je objekt, proto je nutné ji deklarovat a inicializovat. Jako každý jiný objekt ve VBA existují dva způsoby vytváření kolekce ve VBA.
1. Okamžité vytváření
Dim položky jako nová kolekce
Ve výše uvedené metodě je objekt okamžitě vytvořen. Tuto kolekci můžete okamžitě začít používat pro své požadavky.
2. Zpožděné vytváření
Dim položky jako Collection Set items = New Collection
V této metodě nejprve vytvoříme odkaz na kolekci a v případě potřeby inicializujeme pomocí objektu kolekce. Pomocí této metody se můžete rozhodnout vytvořit kolekci na základě určitých kritérií.
Přidávání položek do kolekce (Collection.Add)
K přidání nových položek do kolekce používáme metodu Přidat.
položky.Přidejte "Jablka"
Výše uvedený kód přidá do kolekce řetězec „Jablka“.
položky. Přidat 1.4
Výše uvedený kód přidá dvojnásobek 1.4 na konec shromažďování.
K těmto položkám můžeme také definovat klíče. Tyto klíče lze použít k přístupu k položkám ve sbírce.
Vkládání položek do kolekce před nebo za existující položku
Metoda Add přidá nové položky na konci kolekce.
Metoda přidání má čtyři parametry.
Přidat (položka, [Klíč], [Před], [Po])
První argument je nutný. Jedná se o objekt nebo objekt, který chcete přidat do kolekce. Zbývající argumenty jsou volitelné. V této části uvidíme použití těchto argumentů.
Pokud chceme přidat nějakou položku před nebo za nějaký perikulární index/klíč, použijeme parametry Before a After metody Add.
items.Add True, "b", "cnst" 'Nebo items.Add True, Before: = "cnst"
Oba řádky vloží logickou hodnotu před klíč „cnst“ do položek kolekce VBA.
K vložení položky za perikulární index/položku/klíč použijeme parametr After metody Add.
'vkládání „Mango" s klíčem „m" za položky „cnst“. Přidejte „Mango“, klíč: = „m“, za: = „b“
Nad řádek vloží „Mango“ s klíčem „m“ za klíč „b“.
Poznámka: Klíče položek by měly být jedinečné. Jakýkoli klíč, který již ve sbírce existuje, nebude přijat. VBA vrátí chybu, že „klíč je již přidružen k prvku této kolekce“.
Můžeme to využít pro naši výhodu získat jedinečný seznam ze sbírky.
Přístup k položkám sbírky (Collection.Item)
K položkám kolekce existují dva způsoby přístupu.
- CollectionName ("index/klíč")
- CollectionName.Item ("index/klíč")
Například pro přístup ke členovi ve sbírce položky na indexu 1 a klíči „apl“ mohu použít libovolný z níže uvedených kódů VBA.
Debug.Print items.Item (1) - Debug.Print items (1) - Debug.Print items.Item ("apl") - Debug.Print items ("apl")
Jak získat počet položek ve sbírce? (Collection.Count)
K získání celkového počtu předmětů nebo položek ve sbírce používáme funkci .Count kolekce. Metoda .Count vrací celkový počet položek ve sbírce.
Položky
Nahoře na řádku bude uveden počet předmětů, které kolekce má.
Jak přistupovat ke všem položkám kolekce?
Jediným způsobem, jak získat přístup ke všem položkám kolekce ve VBA, jsou smyčky. Pro přístup k nim iterujeme každou položku kolekce. K tomu používáme smyčku for. Smyčka pro každého je považována za nejrychlejší a nejčistší způsob přístupu k objektům kolekce.
Smyčka prostřednictvím sbírky ve VBA
Sbírkou ve VBA lze procházet různými způsoby. Nejelegantnější pro každou smyčku použijeme k iteraci kolekce.
Chcete -li procházet každou položku kolekce, použijte pouze tento řádek kódu VBA.
Pro každou položku v položkách Debug.Print itm Další itm
Odebírání položek ze sbírky (Collection.Remove)
K odebrání položky ze sbírky vba můžeme použít metodu Remove. Metoda remove má jeden argument. Může to být rejstřík nebo klíč položky (je -li k dispozici).
items.Remove (1) 'using index - items.Remove 1 - items.Remove ("apl")' using key - items.Remove "apl"
Odstranění kolekce ve VBA
Sbírku ve vba nemůžete smazat. Můžete však odebrat všechny položky této kolekce tak, že ji znovu nastavíte jako novou kolekci.
Nastavené položky = Nová kolekce
Tento řádek kódu vytvoří novou kolekci na adrese položek. Naše sbírka bude proto vyprázdněna.
Array vs Collection ve VBA
Pole |
Sbírka |
Takže jo, lidi, toto jsou základy sbírek. Sbírka VBA v kancelářských nástrojích má mnoho výhod a využití. Prozkoumáme je společně. Do té doby, pokud máte nějaké dotazy týkající se shromažďování nebo cokoli souvisejícího s aplikací Excel/VBA, napište je níže do sekce komentářů.