Kolekcia je dátový typ, ktorý uchováva ukladané objekty rovnako ako polia (ale odlišné). Pri písaní základných kódov VBA ste museli používať zošity, pracovné listy, rozsahy atď. Všetko sú to zbierky. V tomto článku sa dozvieme o zbierkach VBA.
Čo je zbierka vo VBA?
Kolekcia je dátový typ, ktorý ukladá podobný typ objektov ako polia.
Na rozdiel od polí však je možné jeho veľkosť podľa potreby dynamicky zväčšovať alebo zmenšovať.
Položky môžete pridávať, nachádzať, načítavať a odstraňovať zo zbierok.
Na rozdiel od polí nemôžete meniť hodnoty položiek v zbierkach. Ak to chcete, použite pole ako položku v zbierke.
Kolekcia má 4 vlastnosti alebo metódy, ktoré sú s ňou spojené.
Zbierka. Pridajte zbierku. Zbierka položiek. Zbierka čiastok. Odstrániť
V tomto článku sa pozrieme na využitie týchto vlastností.
Ako vytvoriť zbierku vo VBA?
Kolekcia je predmet, preto je potrebné ju deklarovať a inicializovať. Ako každý iný objekt vo VBA existujú dva spôsoby vytvárania kolekcie vo VBA.
1. Okamžitá tvorba
Dim položky ako novú kolekciu
Vo vyššie uvedenej metóde je objekt okamžite vytvorený. Túto kolekciu môžete začať používať pre svoje požiadavky okamžite.
2. Oneskorená tvorba
Dim položky ako položky sady kolekcií = nová zbierka
Pri tejto metóde najskôr vytvoríme referenciu na zbierku a v prípade potreby inicializujeme pomocou zberného objektu. Pomocou tejto metódy sa môžete rozhodnúť vytvoriť kolekciu na základe určitých kritérií.
Pridávanie položiek do zbierky (Collection.Add)
Na pridanie nových položiek do zbierky používame metódu Add.
položky. Pridajte „Jablká“
Vyššie uvedený kód pridá do zbierky reťazec „Jablká“.
položky. Pridajte 1.4
Vyššie uvedený kód pridá na konci zbierky dvojnásobok 1,4.
K týmto položkám môžeme tiež definovať kľúče. Tieto kľúče je možné použiť na prístup k položkám v zbierke.
Vkladanie položiek do zbierky pred alebo za existujúcu položku
Metóda Add pridá nové položky na konci zbierky.
Metóda pridávania má štyri parametre.
Pridať (položka, [Kľúč], [Pred], [Po])
Prvý argument je potrebný. Je to predmet alebo objekt, ktorý chcete pridať do zbierky. Ostatné argumenty sú voliteľné. Použitie týchto argumentov uvidíme v tejto časti.
Ak chceme pridať nejakú položku pred alebo za nejaký perikulárny index/kľúč, použijeme parametre Pred a Po v metóde Add.
items.Add True, "b", "cnst" 'Alebo položky.Add True, Before: = "cnst"
Oba riadky vložia logickú hodnotu pred kľúč „cnst“ do položiek zbierky VBA.
Na vloženie položky za perikulárny index/položku/kľúč používame parameter After metódy Add.
'vkladanie „Mango" s kľúčom „m" za položky „cnst“. Pridajte „Mango“, kľúč: = „m“, za: = „b“
Nad riadok sa vloží „Mango“ s kľúčom „m“ za kláves „b“.
Poznámka: Kľúče od položiek by mali byť jedinečné. Akýkoľvek kľúč, ktorý už existuje v zbierke, nebude prijatý. VBA vráti chybu, že „kľúč je už spojený s prvkom tejto zbierky“.
Môžeme to využiť vo svoj prospech a získať jedinečný zoznam zo zbierky.
Prístup k položkám zbierky (Collection.Item)
Existujú dva spôsoby prístupu k položkám zbierky.
- CollectionName ("index/kľúč")
- CollectionName.Item ("index/kľúč")
Napríklad na prístup k členovi v zbierke položky v indexe 1 a kľúči „apl“ môžem použiť ktorýkoľvek z nižšie uvedených kódov VBA.
Debug.Print items.Item (1) - Debug.Print items (1) - Debug.Print items.Item ("apl") - Debug.Print items ("apl")
Ako získať počet položiek v zbierke? [Collection.Count]
Na získanie celkového počtu predmetov alebo položiek v zbierke používame funkciu .Count zbierky. Metóda .Count vracia celkový počet položiek v zbierke.
položky.Počet
Hore uvedený riadok uvádza počet predmetov, ktoré zbierka má.
Ako sa dostať k všetkým položkám zbierky?
Jediným spôsobom, ako získať prístup k všetkým položkám zbierky vo VBA, sú slučky. Opakujeme všetky položky zbierky, aby sme k nim mali prístup. Na to používame cyklus for. Smyčka for-each je považovaná za najrýchlejší a najčistejší spôsob prístupu k zbierkovým predmetom.
Opakovanie zbierky vo VBA
Existuje niekoľko spôsobov, ako prechádzať zbierkou vo VBA. Najelegantnejšie použijeme pre každú slučku na iteráciu zbierky.
Aby ste príliš prešli každou položkou zbierky, použite iba tento riadok kódu VBA.
Pre každú položku v položkách Debug.Print itm Nasledujúca položka
Odstránenie položiek zo zbierky (zbierka. Odstrániť)
Na odstránenie položky zo zbierky vba môžeme použiť metódu Remove. Metóda remove má jeden argument. Môže to byť index alebo kľúč položky (ak je k dispozícii).
items.Remove (1) 'using index - items.Remove 1 - items.Remove ("apl")' using key - items.Remove "apl"
Odstránenie zbierky vo VBA
Zbierku vo vba nemôžete odstrániť. Môžete však odstrániť všetky položky z tejto zbierky tak, že ju znova nastavíte ako novú zbierku.
Nastavené položky = Nová zbierka
Tento riadok kódu vytvorí novú kolekciu na adresu položiek. Preto bude naša zbierka vyprázdnená.
Array vs Collection vo VBA
Array |
Zbierka |
Takže áno, chlapci, toto sú základy zbierok. Existuje mnoho výhod a použití zbierky VBA v kancelárskych nástrojoch. Spolu ich preskúmame. Do tej doby, ak máte akékoľvek otázky týkajúce sa zbierky alebo čokoľvek súvisiace s programom Excel/VBA, položte ich nižšie v sekcii komentárov.