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.
- CollectionName ("hakemisto/avain")
- 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 |
Kokoelma |
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.