Een verzameling is een gegevenstype dat opslagobjecten bevat, net als arrays (maar anders). Tijdens het schrijven van basis VBA-codes moet u werkmappen, werkbladen, bereiken enz. hebben gebruikt. Het zijn allemaal verzamelingen. In dit artikel zullen we meer te weten komen over VBA-collecties.
Wat is een verzameling in VBA?
Een verzameling is een gegevenstype dat vergelijkbare typen objecten opslaat, net als arrays.
Maar in tegenstelling tot arrays, kan de grootte ervan dynamisch worden vergroot of verkleind volgens de vereisten.
U kunt items uit collecties toevoegen, zoeken, ophalen en verwijderen.
In tegenstelling tot array's kunt u de waarden van items in verzamelingen niet wijzigen. Als je dat wilt, gebruik dan arrays als item in verzameling.
Aan een collectie zijn 4 eigenschappen of methoden gekoppeld.
Collection.Add Collection.Item Collection.Count Collection.Verwijderen
Via dit artikel zal het gebruik van deze eigenschappen worden onderzocht.
Hoe maak je een verzameling in VBA?
Een verzameling is een object en daarom is het noodzakelijk om het te declareren en te initialiseren. Net als elk ander object in VBA, zijn er twee methoden om een verzameling in VBA te maken.
1. Directe creatie
Dim items als nieuwe collectie
In de bovenstaande methode wordt het object onmiddellijk gemaakt. U kunt deze collectie direct gaan gebruiken voor uw wensen.
2. Vertraagde creatie
Dim items als collectie Set items = Nieuwe collectie
Bij deze methode maken we eerst een verzamelingsreferentie en indien nodig initialiseren we met een verzamelingsobject. Met deze methode kunt u ervoor kiezen om de collectie te maken op basis van enkele criteria.
Items toevoegen aan een collectie (Collection.Add)
We gebruiken de Add-methode om nieuwe items aan een collectie toe te voegen.
items.Voeg "Appels" toe
De bovenstaande code voegt string "Apples" toe aan de verzameling.
items. Voeg 1.4 . toe
De bovenstaande code voegt dubbel 1.4 toe aan het einde van de verzameling.
We kunnen ook sleutels voor deze items definiëren. Deze sleutels kunnen worden gebruikt om toegang te krijgen tot de items in de collectie.
Items in collectie invoegen voor of na een bestaand item
De methode Toevoegen voegt nieuwe items toe aan het einde van de verzameling.
De add-methode heeft vier parameters.
Toevoegen(item,[Sleutel],[Voor],[Na])
Het eerste argument is nodig. Het is het object of dat u aan de collectie wilt toevoegen. Restargumenten zijn optioneel. We zullen het gebruik van deze argumenten in deze sectie zien.
Als we een item voor of na een bepaalde index/sleutel willen toevoegen, gebruiken we de parameters Voor en Na van de methode Toevoegen.
items.Add True, "b", "cnst" 'Of items.Add True, Before:="cnst"
Beide regels zullen een booleaanse waarde invoegen vóór de sleutel "cnst" in de VBA-verzamelingsitems.
Om een item in te voegen na een perticular index/item/key gebruiken we de After parameter van de Add-methode.
'Mango' invoegen met toets 'm' na toets 'cnst' items. 'Mango' toevoegen, Key:="m", after:="b"
Bovenstaande regel zal "Mango" invoegen met toets "m" na toets "b".
Opmerking: De sleutels van items moeten uniek zijn. Elke sleutel die al in de collectie aanwezig is, wordt niet geaccepteerd. VBA retourneert een fout dat "de sleutel al is gekoppeld aan een element van deze verzameling".
Wij kunnen hier ons voordeel mee doen om een unieke lijst uit de collectie te halen.
Toegang tot collectiestukken (Collection.Item)
Er zijn twee manieren om toegang te krijgen tot de items van een collectie.
- Verzamelnaam ("index/sleutel")
- CollectionName.Item("index/key")
Om bijvoorbeeld toegang te krijgen tot een lid in een verzameling artikelen bij index 1 en toets "apl", kan ik elk van onderstaande VBA-codes gebruiken.
Debug.Print items.Item(1) -- Debug.Print items(1) -- Debug.Print items.Item("apl") -- Debug.Print items("apl")
Hoe het aantal items in een verzameling te krijgen? (Verzameling. Telling)
Om het totale aantal objecten of items in een verzameling te krijgen, gebruiken we de .Count-functie van verzameling. De .Count-methode retourneert het totale aantal items in de verzameling.
items.Tellen
Bovenstaande regel geeft het aantal objecten dat de collectie heeft.
Hoe toegang krijgen tot alle items van een collectie?
De enige manier om toegang te krijgen tot alle items van de collectie in VBA is loops. We doorlopen elk item van de collectie om ze te openen. Daarvoor gebruiken we for loop. De for-each-lus wordt beschouwd als de snelste en schoonste manier om toegang te krijgen tot collectieobjecten.
Door een verzameling bladeren in VBA
Er zijn verschillende manieren om door de verzameling in VBA te bladeren. We zullen de meest elegante gebruiken voor elke lus om door de verzameling te lopen.
Als u door elk item van een verzameling wilt bladeren, gebruikt u gewoon deze regel VBA-code.
Voor elk item In items Debug.Print het Volgende item
Items uit een collectie verwijderen (Collection.Remove)
Om een item uit een vba-verzameling te verwijderen, kunnen we de Remove-methode gebruiken. De verwijdermethode heeft één argument nodig. Dit kan de index of de sleutel van het item zijn (indien beschikbaar).
items.Verwijder (1) 'gebruik index -- items.Verwijder 1 -- items.Verwijder ("apl") 'gebruik sleutel -- items.Verwijder "apl"
Verzameling verwijderen in VBA
Nou, je kunt een verzameling niet verwijderen in vba. U kunt echter alle items van die verzameling verwijderen door deze opnieuw in te stellen als een nieuwe verzameling.
Items instellen = Nieuwe collectie
Deze regel code maakt een nieuwe collectie aan op het adres van items. Daarom wordt onze collectie geleegd.
Matrix versus verzameling in VBA
Array |
Verzameling |
Dus ja jongens, dit is de basis van collecties. Er zijn veel voordelen en toepassingen van VBA-verzameling in kantoorhulpmiddelen. We gaan ze samen verkennen. Tot die tijd, als u vragen heeft over het verzamelen of iets met betrekking tot Excel / VBA, kunt u dit in de opmerkingen hieronder plaatsen.