Kuidas kasutada Excelis VBA kogusid

Anonim


Kogumik on andmetüüp, mis hoiab salvestusobjekte nagu massiive (kuid erinevaid). Põhiliste VBA -koodide kirjutamise ajal peate olema kasutanud töövihikuid, töölehti, vahemikke jne. Kõik need on kogud. Selles artiklis õpime tundma VBA kogusid.
Mis on kollektsioon VBA -s?
Kogu on andmetüüp, mis salvestab sarnast tüüpi objekte nagu massiivid.

Kuid erinevalt massiividest saab selle suurust vastavalt vajadusele dünaamiliselt suurendada või vähendada.

Saate kogudest üksusi lisada, leida, tuua ja kustutada.

Erinevalt massiividest ei saa te kogudes olevate üksuste väärtusi muuta. Kui soovite, kasutage massiive kollektsiooni üksusena.

Koguga on seotud 4 omadust või meetodit.

 Collection.Add Collection.Item Collection.Count Collection.Eemalda 

Selle artikli kaudu uurime nende omaduste kasutamist.
Kuidas luua kollektsiooni VBA -s?
Kogu on objekt, seega tuleb see deklareerida ja lähtestada. Nagu iga teine ​​VBA objekt, on ka VBA -s kollektsiooni loomiseks kaks meetodit.
1. Kohene loomine

Hämardage esemed uue kollektsioonina

Ülaltoodud meetodil luuakse objekt koheselt. Saate kohe hakata seda kollektsiooni oma vajadustele vastavaks kasutama.

2. Hiline loomine

 Üksuste hämardamine kogumikomplektidena = Uus kogu 

Selle meetodi puhul loome esmalt kogumisviite ja vajadusel initsialiseerime kogumisobjekti. Selle meetodi abil saate kollektsiooni luua mõne kriteeriumi alusel.

Üksuste lisamine kogusse (Collection.Add)
Me kasutame kollektsiooni uute üksuste lisamiseks meetodit Lisa.

üksused. Lisage "Õunad"

Ülaltoodud kood lisab kollektsiooni stringi "Õunad".

üksused. Lisa 1.4

Ülaltoodud kood lisab kogumise lõppu topelt 1,4.

Samuti saame määrata nende üksuste võtmed. Neid võtmeid saab kasutada kogudes olevatele üksustele.

Esemete lisamine kollektsiooni enne või pärast olemasolevat eset

Lisa meetod lisab kogu lõppu uusi üksusi.

Lisamismeetodil on neli parameetrit.

Lisa (üksus, [võti], [enne], [pärast])

Esimene argument on vajalik. See on objekt või see, mida soovite kollektsiooni lisada. Ülejäänud argumendid on valikulised. Näeme nende argumentide kasutamist selles jaotises.

Kui me tahame lisada mõne üksuse enne või pärast mõnda sobivat indeksit/võtit, siis kasutame lisamismeetodi parameetreid enne ja pärast.

items.Add True, "b", "cnst" 'Või items.Add True, Before: = "cnst"

Mõlemad read lisavad VBA kollektsiooni üksustesse enne võtit "cnst" tõeväärtuse.

Üksuse sisestamiseks sobiva indeksi/elemendi/võtme järele kasutame lisamismeetodi parameetrit After.

"Mango" lisamine võtme "c" järel võtme "m" juurde. Lisage "Mango", võti: = "m", pärast: = "b"

Ülaltoodud reale lisatakse võtme "b" järel "Mango" ja võti "m".

Märge: Esemete võtmed peaksid olema ainulaadsed. Kogus juba olemasolevaid võtmeid ei aktsepteerita. VBA tagastab vea, et "võti on juba selle kollektsiooni elemendiga seotud".

Saame seda oma eeliseks kasutada, et saada kollektsioonist ainulaadne loend.
Juurdepääs kogumisüksustele (Collection.Item)

Kollektsiooni üksustele juurdepääsemiseks on kaks meetodit.

  1. CollectionName ("register/võti")
  2. CollectionName.Item ("indeks/võti")

Näiteks juurdepääs kogu liikmele esemeid indeksis 1 ja võtmes "apl" võin kasutada mis tahes allpool toodud VBA koode.

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


Kuidas kogudes olevaid esemeid lugeda? [Collection.Count]
Kogus olevate objektide või esemete koguarvu saamiseks kasutame kogumise funktsiooni. Meetod .Count tagastab kogu üksuste koguarvu.

 esemed. Loend

Ülaltoodud joonisel kuvatakse kollektsioonis olevate objektide arv.

Kuidas pääseda juurde kõigile kollektsiooni esemetele?

Ainus viis VBA kollektsiooni kõikidele üksustele juurde pääseda on silmused. Kordame läbi iga kollektsiooni, et neile juurde pääseda. Selleks kasutame silmus. Iga silmust peetakse kiireimaks ja puhtaimaks viisiks kogumisobjektidele juurde pääsemiseks.
Kollektsiooni kordamine VBA -s

Kollektsiooni VBA -s leidmiseks on mitmeid viise. Kasutame kollektsiooni kordamiseks iga silmuse jaoks kõige elegantsemat.

Liiga ringi kogu kogu üksusest kasutage lihtsalt seda VBA -koodi rida.

Iga itm üksuste jaoks silumine. Printige see järgmine itm


Üksuste eemaldamine kogust (Collection.Eemalda)

Üksuse eemaldamiseks vba kogust saame kasutada eemaldamismeetodit. Eemaldamismeetod võtab ühe argumendi. See võib olla üksuse indeks või võti (kui see on saadaval).

items.Remove (1) 'using index - items.Eemalda 1 - items.Remove ("apl")' using key - items.Eemalda "apl"

Kogu kustutamine VBA -s

Noh, te ei saa vba kollektsiooni kustutada. Siiski saate selle kogu kõik üksused eemaldada, määrates selle uuesti uueks koguks.

Määra üksused = Uus kogu

See koodirida loob esemete aadressile uue kogu. Seetõttu tühjendatakse meie kogu.

Massiiv vs kollektsioon VBA -s

    Massiiv

  1. Massiivi suurus on ette määratud. Massiivi suurust ei saa tavaliselt muuta.
  2. Massiivid võivad sisaldada ainult sama tüüpi andmeid ja tüüp tuleb kõigepealt deklareerida.
  3. Massiivi indekseerimine algab nullist
  4. Massiivi liikmetel pole seotud võtit.
  5. Massiivid on muutlikud. Saate muuta selle liikmete väärtusi.

    Kogu

  1. Kogu suurus muutub üksuste lisamisel või eemaldamisel.
  2. Kogus võib olla suvaline arv andmetüüpe. Nagu näete ülaltoodud näidetes.
  3. Indekseerimine VBA kollektsioonis algab 1.
  4. Kogu liikmetega võib olla seotud võtmed.
  5. Kollektsioonid on muutumatud. Te ei saa otseselt muuta selle liikme väärtusi.

Nii et jah, poisid, see on kollektsioonide põhitõed. VBA kollektsioonil on kontoritööriistades palju eeliseid ja kasutusvõimalusi. Uurime neid koos. Seni, kui teil on kogumise või mõne muu Exceli/VBA -ga seonduva kohta küsimusi, kirjutage see allpool olevasse kommentaaride sektsiooni.