Kā lietot VBA kolekcijas programmā Excel

Anonim


Kolekcija ir datu veids, kurā glabājas veikalu objekti tāpat kā masīvi (bet atšķirīgi). Rakstot pamata VBA kodus, jums ir jāizmanto darbgrāmatas, darblapas, diapazoni utt. Tie visi ir kolekcijas. Šajā rakstā mēs uzzināsim par VBA kolekcijām.
Kas ir kolekcija VBA?
Kolekcija ir datu tips, kurā tiek glabāti līdzīga veida objekti tāpat kā masīvi.

Bet atšķirībā no masīviem tā izmēru var dinamiski palielināt vai samazināt atbilstoši prasībām.

Jūs varat pievienot, atrast, izgūt un dzēst vienumus no kolekcijām.

Atšķirībā no masīva, jūs nevarat mainīt kolekciju vienumu vērtības. Ja vēlaties, izmantojiet masīvus kā kolekcijas vienumu.

Kolekcijai ir 4 ar to saistītas īpašības vai metodes.

 Collection.Add Collection.Item Collection.Count Collection.Remove 

Šajā rakstā tiks apskatīta šo īpašību izmantošana.
Kā izveidot kolekciju VBA?
Kolekcija ir objekts, tāpēc tā ir jādeklarē un jāinicializē. Tāpat kā jebkurš cits VBA objekts, kolekcijā VBA ir divas metodes.
1. Tūlītēja radīšana

Aptumšojiet priekšmetus kā jaunu kolekciju

Iepriekš minētajā metodē objekts tiek izveidots uzreiz. Jūs varat nekavējoties sākt izmantot šo kolekciju savām vajadzībām.

2. Aizkavēta radīšana

 Izgaismot vienumus kā kolekcijas kopas vienumus = Jauna kolekcija 

Šajā metodē vispirms izveidojam kolekcijas atsauci un, kad nepieciešams, inicializējam ar kolekcijas objektu. Izmantojot šo metodi, jūs varat izvēlēties izveidot kolekciju, pamatojoties uz dažiem kritērijiem.

Vienumu pievienošana kolekcijai (Collection.Add)
Mēs izmantojam pievienošanas metodi, lai kolekcijai pievienotu jaunus vienumus.

preces. Pievienojiet "Āboli"

Iepriekš minētais kods kolekcijai pievienos virkni "Āboli".

preces. Pievienot 1.4

Iepriekš minētais kods savākšanas beigās pievienos dubultā 1.4.

Mēs varam arī definēt šo vienumu atslēgas. Šīs atslēgas var izmantot, lai piekļūtu kolekcijas priekšmetiem.

Preču ievietošana kolekcijā pirms vai pēc esoša vienuma

Pievienošanas metode kolekcijas beigās pievieno jaunus vienumus.

Pievienošanas metodei ir četri parametri.

Pievienot (vienums, [Atslēga], [Pirms], [Pēc])

Pirmais arguments ir nepieciešams. Tas ir objekts vai tas, ko vēlaties pievienot kolekcijai. Atpūtas argumenti nav obligāti. Mēs redzēsim šo argumentu pielietojumu šajā sadaļā.

Ja mēs vēlamies pievienot kādu vienumu pirms vai pēc kāda atbilstoša indeksa/atslēgas, tad mēs izmantojam pievienošanas metodes parametrus Pirms un Pēc.

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

Abās rindās VBA kolekcijas vienumos pirms atslēgas "cnst" tiks ievietota Būla vērtība.

Lai ievietotu vienumu aiz atbilstošā indeksa/vienuma/atslēgas, mēs izmantojam metodes Pievienošanas metodes parametru After.

"pēc" cnst "vienumiem ievietojot" Mango "ar taustiņu" m ". Pievienojiet" Mango ", atslēga: =" m ", pēc: =" b "

Virs līnijas pēc taustiņa "b" tiks ievietots "Mango" ar taustiņu "m".

Piezīme: Vienumu atslēgām jābūt unikālām. Visas kolekcijā esošās atslēgas netiks pieņemtas. VBA atgriezīs kļūdu, ka "atslēga jau ir saistīta ar šīs kolekcijas elementu".

Mēs varam to izmantot mūsu labā, lai iegūtu unikālu kolekcijas sarakstu.
Piekļuve kolekcijas vienumiem (Collection.Item)

Ir divas metodes, kā piekļūt kolekcijas priekšmetiem.

  1. CollectionName ("indekss/atslēga")
  2. CollectionName.Item ("indekss/atslēga")

Piemēram, lai piekļūtu kolekcijas dalībniekam preces indeksā 1 un taustiņā "apl" es varu izmantot jebkuru no zemāk esošajiem VBA kodiem.

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


Kā iegūt kolekcijā esošo priekšmetu skaitu? [Collection.Count]
Lai iegūtu kopējo objektu vai vienumu skaitu kolekcijā, mēs izmantojam kolekcijas funkciju. Metode .Count atgriež kopējo kolekcijā esošo vienumu skaitu.

 preces. Skaits

Virs līnijas tiks parādīts kolekcijā esošo objektu skaits.

Kā piekļūt visiem kolekcijas priekšmetiem?

Vienīgais veids, kā piekļūt visiem kolekcijas priekšmetiem VBA, ir cilpas. Mēs atkārtojam katru kolekcijas vienumu, lai tiem piekļūtu. Šim nolūkam mēs izmantojam cilpu. Katrai cilpai tiek uzskatīts ātrākais un tīrākais veids, kā piekļūt savākšanas objektiem.
Kolekcijas apskate VBA

VBA kolekciju var apskatīt dažādos veidos. Katrai cilpai izmantosim elegantāko, lai atkārtotu kolekciju.

Pārāk cilpu caur katru kolekcijas vienību, vienkārši izmantojiet šo VBA koda rindu.

Par katru ITM vienumos Debug. Izdrukāt itm Next itm


Vienumu noņemšana no kolekcijas (Collection.Remove)

Lai noņemtu vienumu no vba kolekcijas, mēs varam izmantot noņemšanas metodi. Noņemšanas metode aizņem vienu argumentu. Tas var būt rādītājs vai vienuma atslēga (ja pieejama).

items.Remove (1) 'using index - items. Noņemt 1 - items.Remove ("apl")' using key - items.Remove "apl"

Kolekcijas dzēšana VBA

Nu, vba nevar izdzēst kolekciju. Tomēr varat noņemt visus šīs kolekcijas vienumus, vēlreiz iestatot to kā jaunu kolekciju.

Iestatīt vienumus = Jauna kolekcija

Šī koda rinda izveidos jaunu kolekciju vienumu adresēs. Tādējādi mūsu kolekcija tiks iztukšota.

Masīvs pret kolekciju VBA

    Masīvs

  1. Masīva lielums ir iepriekš noteikts. Masīva lielumu nevar mainīt normāli.
  2. Masīvos var būt tikai tāda paša veida dati, un veids vispirms ir jādeklarē.
  3. Indeksēšana masīvā sākas no 0
  4. Masīva dalībniekiem nav nevienas saistītās atslēgas.
  5. Masīvi ir mainīgi. Jūs varat mainīt tās dalībnieku vērtības.

    Kolekcija

  1. Kolekcijas lielums mainās, pievienojot vai noņemot vienumus.
  2. Kolekcija var saturēt neierobežotu skaitu datu veidu. Kā redzējāt iepriekš minētajos piemēros.
  3. Indeksēšana VBA kolekcijā sākas no 1.
  4. Kolekcijas dalībniekiem var būt saistītas atslēgas.
  5. Kolekcijas ir nemainīgas. Jūs nevarat tieši mainīt tās dalībnieka vērtības.

Jā, puiši, tas ir kolekciju pamati. Biroja rīkos VBA kolekcijai ir daudz priekšrocību un pielietojumu. Mēs tos izpētīsim kopā. Līdz tam, ja jums ir kādi jautājumi par vākšanu vai jebko, kas saistīts ar Excel/VBA, ievietojiet komentāru sadaļā zemāk.