Kuinka käyttää VBA -kokoelmia Excelissä

Anonim


Kokoelma on tietotyyppi, joka sisältää tallennusobjekteja kuten matriisit (mutta erilaiset). Kirjoittaessasi VBA -peruskoodeja sinun on käytettävä työkirjoja, laskentataulukoita, alueita jne. Kaikki ovat kokoelmia. Tässä artikkelissa opimme VBA -kokoelmista.
Mikä on kokoelma VBA: ssa?
Kokoelma on tietotyyppi, joka tallentaa samanlaisia ​​objekteja kuten taulukot.

Mutta toisin kuin taulukot, sen kokoa voidaan lisätä tai pienentää dynaamisesti tarpeen mukaan.

Voit lisätä, etsiä, hakea ja poistaa kohteita kokoelmista.

Toisin kuin taulukot, et voi muuttaa kokoelmien kohteiden arvoja. Jos haluat niin, käytä taulukkoja kokoelman kohteena.

Kokoelmaan liittyy 4 ominaisuutta tai menetelmää.

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

Tämän artikkelin kautta tutkitaan näiden ominaisuuksien käyttöä.
Kuinka luoda kokoelma VBA: ssa?
Kokoelma on esine, joten se on ilmoitettava ja alustettava. Kuten kaikki muutkin VBA -objektit, kokoelman luomiseen VBA: ssa on kaksi tapaa.
1. Välitön luominen

Himmennä kohteet uutena kokoelmana

Yllä olevassa menetelmässä objekti luodaan välittömästi. Voit aloittaa tämän kokoelman käytön heti tarpeidesi mukaan.

2. Luomisen viivästyminen

 Himmennä kohteita kokoelmajoukkona = Uusi kokoelma 

Tässä menetelmässä luodaan ensin kokoelman viite ja tarvittaessa alustamme kokoelmaobjektilla. Tällä menetelmällä voit luoda kokoelman joidenkin kriteerien perusteella.

Kohteiden lisääminen kokoelmaan (Collection.Add)
Käytämme Lisää -menetelmää uusien kohteiden lisäämiseen kokoelmaan.

kohteita.Lisää "Omenat"

Yllä oleva koodi lisää kokoelmaan merkkijonon "Omenat".

Lisää 1.4

Yllä oleva koodi lisää kaksinkertaisen 1.4 kokoelman loppuun.

Voimme myös määrittää avaimet näille kohteille. Näillä avaimilla voidaan käyttää kokoelman kohteita.

Kohteiden lisääminen kokoelmaan ennen olemassa olevaa kohdetta tai sen jälkeen

Lisää -menetelmä lisää uusia kohteita kokoelman loppuun.

Lisäysmenetelmällä on neljä parametria.

Lisää (kohde, [Avain], [Ennen], [Jälkeen])

Ensimmäinen argumentti on tarpeen. Se on esine tai haluat lisätä kokoelmaan. Loput argumentit ovat valinnaisia. Näemme näiden argumenttien käyttötavat tässä osiossa.

Jos haluamme lisätä jonkin kohteen ennen jotakin erityistä indeksiä/avainta tai sen jälkeen, käytämme Lisää -menetelmän parametreja Ennen ja jälkeen.

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

Molemmat rivit lisäävät boolen arvon ennen avainta "cnst" VBA -kokoelman kohteissa.

Jos haluat lisätä kohteen sopivan indeksin/kohteen/avaimen jälkeen, käytämme Lisää -menetelmän After -parametria.

'"Mango" -merkin lisääminen näppäimellä "m" avaimen "cnst" kohteiden perään. Lisää "Mango", Key: = "m", sen jälkeen: = "b"

Rivin yläpuolelle lisätään "Mango" ja näppäin "m" avaimen "b" jälkeen.

Huomautus: Esineiden avainten tulee olla ainutlaatuisia. Kokoelmassa jo olevia avaimia ei hyväksytä. VBA palauttaa virheilmoituksen, että "avain on jo liitetty tämän kokoelman osaan".

Voimme käyttää tätä hyväksemme saadaksemme ainutlaatuisen luettelon kokoelmasta.
Kokoelman kohteiden käyttö (Collection.Item)

Kokoelman kohteisiin pääsee käsiksi kahdella tavalla.

  1. CollectionName ("hakemisto/avain")
  2. CollectionName.Item ("hakemisto/avain")

Voit esimerkiksi käyttää kokoelman jäsentä kohteita hakemistossa 1 ja avaimella "apl" voin käyttää mitä tahansa alla olevista VBA -koodeista.

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


Kuinka saada kokoelman kohteiden lukumäärä? (Collection.Count)
Jotta saisimme kokoelman esineiden tai kohteiden kokonaismäärän, käytämme kokoelman laskutoimintoa. Laskentamenetelmä palauttaa kokoelman kohteiden kokonaismäärän.

 Tuotteet

Viivan yläpuolella näkyy kokoelman esineiden määrä.

Kuinka päästä käsiksi kokoelman kaikkiin kohteisiin?

Ainoa tapa käyttää kaikkia kokoelman kohteita VBA: ssa on silmukat. Kierrämme jokaisen kokoelman läpi päästäksemme niihin. Tätä varten käytämme silmukkaa. Kunkin silmukan katsotaan olevan nopein ja puhtain tapa päästä keräilykohteisiin.
Kokoelma VBA: ssa

VBA: ssa on useita tapoja kiertää kokoelma. Käytämme tyylikkäimpiä jokaisessa silmukassa kokoelman toistamiseen.

Liian silmukka kokoelman jokaisen kohteen läpi käytä vain tätä VBA -koodiriviä.

Jokaiselle itm -kohteelle Debug. Tulosta itm Next itm


Kohteiden poistaminen kokoelmasta (Collection.Remove)

Voit poistaa kohteen vba -kokoelmasta käyttämällä poistomenetelmää. Poistomenetelmä vaatii yhden argumentin. Se voi olla indeksi tai kohteen avain (jos saatavilla).

items.Remove (1) 'using index - items.Remove 1 - items.Remove ("apl")' näppäimillä - items.Remove "apl"

Kokoelman poistaminen VBA: sta

Et voi poistaa kokoelmaa vba: sta. Voit kuitenkin poistaa kaikki kokoelman kohteet asettamalla sen uudelleen uudeksi kokoelmaksi.

Aseta kohteet = Uusi kokoelma

Tämä koodirivi luo uuden kokoelman kohteiden osoitteisiin. Siksi kokoelma tyhjennetään.

Array vs Collection VBA: ssa

    Array

  1. Taulukon koko on ennalta määritetty. Taulukon kokoa ei voi muuttaa normaalisti.
  2. Taulukot voivat sisältää vain samantyyppisiä tietoja, ja tyyppi on ilmoitettava ensin.
  3. Indeksointi taulukossa alkaa nollasta
  4. Array -jäsenillä ei ole siihen liittyvää avainta.
  5. Taulukot ovat muuttuvia. Voit muuttaa sen jäsenten arvoja.

    Kokoelma

  1. Kokoelman koko muuttuu, kun kohteita lisätään tai poistetaan.
  2. Kokoelma voi sisältää minkä tahansa tietotyypin. Kuten olet nähnyt yllä olevissa esimerkeissä.
  3. Indeksointi VBA Collectionissa alkaa 1.
  4. Kokoelman jäsenillä voi olla avaimia.
  5. Kokoelmat ovat muuttumattomia. Et voi muuttaa sen jäsenen arvoja suoraan.

Joten kyllä ​​kaverit, tämä on kokoelmien perusasiat. VBA -kokoelmassa on monia etuja ja käyttötarkoituksia toimistotyökaluissa. Tutkimme niitä yhdessä. Siihen asti, jos sinulla on kysyttävää keräyksestä tai jostain Excel/VBA -aiheeseen liittyvästä asiasta, kirjoita se alla olevaan kommenttiosaan.