Sbírka VBA | Jak vytvořit sbírkový objekt ve VBA?
Objekt kolekce VBA aplikace Excel
V kódování VBA můžeme kromě existující kolekce položek v jedné skupině vytvořit také vlastní skupiny kolekcí. V našich mnoha článcích jsme hovořili o proměnných objektů a v tomto tutoriálu podrobně provedeme objekt kolekce VBA.
Pokud jste prošli naším předchozím článkem „Pole VBA“, bude pro vás mnohem snazší to pochopit. Pole se používají ke seskupení proměnných pod jednou střechou, podobně se Collection používá také k uložení skupiny proměnných.
Kolekce se používají k ukládání objektů. Jsou mnohem flexibilnější než pole VBA, zatímco pole mají limit pevné velikosti, ale kolekce nemají žádný limit pevné velikosti v daném okamžiku a dokonce nevyžadují ruční změnu velikosti.
Kolekce VBA je velmi podobná „slovníku VBA“, ale slovník vyžaduje, aby byl v okně odkazu na objekt nastaven externí odkaz na objekt. U VBA Dictionary musíme nastavit typ odkazu jako „Microsoft Scripting Runtime“, ale Collection nevyžaduje žádnou z těchto zvláštních úprav.
Jak vytvořit sbírkový objekt ve VBA?
Chcete-li začít se sběrem nejprve, musíme deklarovat proměnnou jako „Sbírka“.
Tuto šablonu VBA Collection Excel si můžete stáhnout zde - Šablona VBA Collection ExcelKód:
Sub Collection_Example () Dim Col As Collection End Sub
Protože kolekce je proměnná objektu, musíme nastavit odkaz na objekt vytvořením nové instance.
Kód:
Sub Collection_Example () Dim Col As Collection Set Col = New Collection End Sub
Nyní s touto proměnnou můžeme přistupovat ke všem metodám shromažďování proměnné „Col“.
Kód:
Sub Collection_Example () Dim Col As Collection Set Col = New Collection Col. End Sub
Před použitím těchto metod musíme deklarovat proměnnou jako řetězec.
Kód:
Sub Collection_Example () Dim Col As Collection Set Col = New Collection Dim ColResult As String End Sub
Nyní použijte proměnnou „Col“, zvolte „Add“ metodu.
Kód:
Sub Collection_Example () Dim Col As Collection Set Col = New Collection Col.Add End Sub
V rámci metody Add máme určité parametry. Předpokládejme, že ukládáme názvy mobilních značek s jejich průměrnou prodejní cenou na trhu.
Pod položkou Položka argument zadává cenu mobilu.
Kód:
Sub Collection_Example () Dim Col As Collection Set Col = New Collection Col. Add Item: = 15000, End Sub
Dále v části Klíčový argument zadejte název mobilní značky.
Kód:
Sub Collection_Example () Dim Col As Collection Set Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" End Sub
Nyní pro proměnnou „ColResult“ uložíme výsledek proměnné objektu „Col“.
Kód:
Sub Collection_Example () Dim Col As Collection Set Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col (End Sub
Když otevřete závorku proměnné „Col“, můžeme vidět argument jako index pro tento argument, musíme zadat hodnotu klíčového argumentu z metody Add add, tj. Název mobilní značky.
Kód:
Sub Collection_Example () Dim Col As Collection Set Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col ("Redmi") End Sub
Nyní nechte zobrazit výsledek v okně se zprávou ve VBA.
Kód:
Sub Collection_Example () Dim Col As Collection Set Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col ("Redmi") MsgBox ColResult End Sub
Dobře, máme hotovo, když spustíme kód, měli bychom vidět cenu mobilní značky „Redmi“.
Lepší porozumění klíčovým a položkovým parametrům
Jsem si jistý, že není snadné pochopit parametry objektu Collection. Vysvětlím vám to na jednoduchém příkladu.
Představte si, že máte nabídku ovoce s názvem a cenou ovoce. Předpokládejme, že hledáte cenu ovoce „Apple“ podle názvu ovoce.
Za účelem provádění průzkumu cen ovoce musíme zmínit jméno ovoce tj kolekce VBA jazykové názvem ovoce je Key a cena ovoce je „bod“.
Je to jako použití funkce VLOOKUP nebo HLOOKUP, na základě vyhledávací hodnoty načteme požadovaná data z databáze. Zde je vyhledávací hodnota Key a výsledkem je Item.
Pokročilý příklad
Představte si, že jste manažerem obchodu v jednom z maloobchodů a jste zodpovědní za správu zákaznických dotazů. Jedním z takových dotazů zákazníků je dotaz na cenu produktu.
Musíte zákazníkovi umožnit prohledat cenu produktu s úplnými informacemi. Podobně musíte zobrazit zprávu v případě, že nebudou nalezena žádná data. Níže je ukázkový kód, který před uživatelem zobrazí vstupní pole a vyžaduje zadání názvu produktu, který hledá, pokud je produkt v kolekci, bude zobrazovat cenu uvedeného produktu nebo jinak bude zobrazit zprávu jako „Produkt, který hledáte, neexistuje“.
Kód:
Sub Collection_Example2 () Dim ItemsCol As Collection Dim ColResult As String Set ItemsCol = Nová kolekce ItemsCol.Add Key: = "Apple", Item: = 150 ItemsCol.Add Key: = "Orange", Item: = 75 ItemsCol.Add Key: = "Water Melon", Item: = 45 ItemsCol.Add Key: = "Mush Millan", Item: = 85 ItemsCol.Add Key: = "Mango", Item: = 65 ColResult = Application.InputBox (Prompt: = "Prosím Zadejte název ovoce ") Pokud ItemsCol (ColResult)" "Pak MsgBox" Cena ovoce "& ColResult &" je: "& ItemsCol (ColResult) Jinak MsgBox" Cena ovoce, které hledáte, neexistuje kolekce „End If End Sub