Ako používať zbierky VBA v programe Excel

Anonim


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.

  1. CollectionName ("index/kľúč")
  2. 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

  1. Veľkosť poľa je preddefinovaná. Veľkosť poľa nemožno normálne zmeniť.
  2. Polia môžu obsahovať iba rovnaký typ údajov a typ musí byť najskôr deklarovaný.
  3. Indexovanie v poli začína od 0
  4. Členovia poľa nemajú žiadny priradený kľúč.
  5. Polia sú premenlivé. Môžete zmeniť hodnoty jeho členov.

    Zbierka

  1. Pri pridávaní alebo odstraňovaní položiek sa veľkosť zbierky mení.
  2. Kolekcia môže obsahovať ľubovoľný počet dátových typov. Ako ste videli vo vyššie uvedených príkladoch.
  3. Indexovanie v zbierke VBA začína od 1.
  4. K členom zbierky môžu byť priradené kľúče.
  5. Zbierky sú nemenné. Hodnoty jeho člena nemôžete meniť priamo.

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.