Cum se utilizează colecțiile VBA în Excel

Anonim


O colecție este un tip de date care păstrează stocarea obiectelor la fel ca matricele (dar diferite). În timp ce scrieți coduri VBA de bază, trebuie să fi folosit cărți de lucru, foi de lucru, intervale etc. Toate acestea sunt colecții. În acest articol, vom afla despre colecțiile VBA.
Ce este o colecție în VBA?
O colecție este un tip de date care stochează tipuri similare de obiecte la fel ca matricele.

Dar, spre deosebire de tablouri, dimensiunea acesteia poate fi mărită sau scăzută dinamic în funcție de cerință.

Puteți adăuga, găsi, prelua și șterge articole din colecții.

Spre deosebire de matrice, nu puteți modifica valorile articolelor din colecții. Dacă doriți, utilizați tablouri ca element în colecție.

O colecție are 4 proprietăți sau metode asociate.

 Colecție. Adăugați colecție. Colecție de elemente 

Prin intermediul acestui articol, vom explora utilizarea acestor proprietăți.
Cum se creează o colecție în VBA?
O colecție este un obiect, prin urmare este necesar să o declarați și să o inițializați. Ca orice alt obiect din VBA, există două metode de creare a unei colecții în VBA.
1. Creație instantanee

Atenuați articolele ca colecție nouă

În metoda de mai sus, obiectul este creat instantaneu. Puteți începe să utilizați imediat această colecție pentru cerințele dvs.

2. Creația întârziată

 Reduceți elementele ca elemente de set de colecție = Colecție nouă 

În această metodă, mai întâi creăm o referință de colecție și, atunci când este necesar, inițializăm cu un obiect de colecție. Folosind această metodă puteți alege să creați colecția pe baza unor criterii.

Adăugarea de articole într-o colecție (Collection.Add)
Folosim metoda Adăugare pentru a adăuga elemente noi la o colecție.

items.Add "Mere"

Codul de mai sus va adăuga șirul „Mere” în colecție.

elemente.Adăugați 1.4

Codul de mai sus va adăuga dublu 1.4 la sfârșitul colecției.

De asemenea, putem defini cheile acestor elemente. Aceste chei pot fi folosite pentru a accesa articolele din colecție.

Inserarea articolelor în colecție înainte sau după un articol existent

Metoda Add adaugă elemente noi la sfârșitul colecției.

Metoda add are patru parametri.

Adăugați (element, [Cheie], [Înainte], [După])

Primul argument este necesar. Este obiectul sau pe care doriți să îl adăugați în colecție. Argumentele de rest sunt opționale. Vom vedea utilizările acestor argumente în această secțiune.

Dacă dorim să adăugăm un element înainte sau după un anumit index / cheie, atunci folosim parametrii Înainte și După metoda Adăugare.

items.Add True, "b", "cnst" 'Sau items.Add True, Before: = "cnst"

Ambele rânduri vor insera o valoare booleană înainte de tasta „cnst” în articolele VBA Collection.

Pentru a insera un element după un index / articol / cheie particular, folosim parametrul After al metodei Add.

'inserarea "Mango" cu tasta "m" după elementul cheie "cnst". Adăugați "Mango", cheie: = "m", după: = "b"

Linia de mai sus va insera „Mango” cu tasta „m” după tasta „b”.

Notă: Cheile articolelor trebuie să fie unice. Orice cheie care există deja în colecție nu va fi acceptată. VBA va returna o eroare că „cheia este deja asociată cu un element din această colecție”.

Putem folosi acest lucru în avantajul nostru pentru a obține o listă unică din colecție.
Accesați elementele colecției (Collection.Item)

Există două metode de accesare a elementelor unei colecții.

  1. CollectionName („index / cheie”)
  2. CollectionName.Item ("index / cheie")

De exemplu, pentru a accesa un membru dintr-o colecție obiecte la indexul 1 și cheia „apl”, pot folosi oricare dintre codurile VBA de mai jos.

Debug.Print items.Item (1) - Debug.Print items (1) - Debug.Print items.Item ("apl") - Debug.Print items ("apl")


Cum să obțineți numărul de articole dintr-o colecție? (Collection.Count)
Pentru a obține numărul total de obiecte sau articole dintr-o colecție, folosim funcția .Count a colecției. Metoda .Count returnează numărul total de articole din colecție.

 articole.Cont

Linia de mai sus va da numărul de obiecte pe care le are colecția.

Cum se accesează toate articolele unei colecții?

Singura modalitate de a accesa toate articolele colecției în VBA sunt buclele. Iterăm prin fiecare articol de colecție pentru a le accesa. Pentru asta îl folosim pentru buclă. Bucla pentru fiecare este considerată cea mai rapidă și mai curată modalitate de a accesa obiecte de colecție.
Buclând printr-o colecție în VBA

Există diferite moduri de a parcurge colecția în VBA. Vom folosi cele mai elegante pentru fiecare buclă pentru a itera prin colecție.

Prea buclă prin fiecare articol al unei colecții, utilizați doar această linie de cod VBA.

Pentru fiecare itm în elemente Debug.Print itm Next itm


Eliminarea articolelor dintr-o colecție (Collection.Remove)

Pentru a elimina un articol dintr-o colecție vba, putem folosi metoda Remove. Metoda de eliminare acceptă un argument. Poate fi indexul sau cheia elementului (dacă este disponibil).

items.Remove (1) 'folosind index - items.Remove 1 - items.Remove ("apl")' folosind cheia - items.Remove "apl"

Ștergerea colecției în VBA

Ei bine, nu puteți șterge o colecție în vba. Cu toate acestea, puteți elimina toate articolele din acea colecție setând-o din nou ca o nouă colecție.

Set items = Colecție nouă

Această linie de cod va crea o nouă colecție pe adresa articolelor. Prin urmare, colecția noastră va fi golită.

Array vs Collection în VBA

    Matrice

  1. Dimensiunea matricei este predefinită. Dimensiunea matricei nu poate fi modificată în mod normal.
  2. Tablourile pot conține doar același tip de date și tipul trebuie declarat mai întâi.
  3. Indexarea în matrice începe de la 0
  4. Membrii Array nu au nicio cheie asociată.
  5. Tablourile sunt modificabile. Puteți schimba valorile membrilor săi.

    Colectie

  1. Dimensiunea colecției se modifică pe măsură ce elementele sunt adăugate sau eliminate.
  2. O colecție poate conține orice număr de tip de date. După cum ați văzut în exemplele de mai sus.
  3. Indexarea în colecția VBA începe de la 1.
  4. Membrii colecției pot avea chei asociate.
  5. Colecțiile sunt imuabile. Nu puteți modifica direct valorile membrilor săi.

Deci, băieți, acesta este elementele de bază ale colecțiilor. Există multe avantaje și utilizări ale colecției VBA în instrumentele de birou. Le vom explora împreună. Până atunci, dacă aveți întrebări cu privire la colecție sau ceva legat de Excel / VBA, introduceți în secțiunea de comentarii de mai jos.