Come utilizzare VBA in Excel Collezioni
Una raccolta è un tipo di dati che contiene oggetti archiviati proprio come gli array (ma diversi). Durante la scrittura dei codici VBA di base, è necessario aver utilizzato cartelle di lavoro, fogli di lavoro, intervalli, ecc. Sono tutte raccolte. In questo articolo, impareremo le raccolte VBA.
Che cos’è una raccolta in VBA?
Una raccolta è un tipo di dati che memorizza un tipo simile di oggetti proprio come gli array. Ma a differenza degli array, le sue dimensioni possono essere aumentate o diminuite dinamicamente secondo i requisiti.
Puoi aggiungere, trovare, recuperare ed eliminare elementi dalle raccolte.
A differenza degli array, non è possibile modificare i valori degli elementi nelle raccolte. Se lo desideri, utilizza gli array come elemento nella raccolta.
Una raccolta ha 4 proprietà o metodi ad essa associati.
Collection.Add Collection.Item Collection.Count Collection.Remove
Attraverso questo articolo, esploreremo l’uso di queste proprietà.
Come creare una raccolta in VBA?
Una collezione è un oggetto quindi è necessario dichiararlo e inizializzarlo. Come qualsiasi altro oggetto in VBA, esistono due metodi per creare una raccolta in VBA.
1. Creazione istantanea
Dim items as new Collection
Nel metodo sopra, l’oggetto viene creato istantaneamente. Puoi iniziare a utilizzare questa raccolta immediatamente per le tue esigenze.
2. Creazione ritardata
Dim items as Collection Set items = New Collection
In questo metodo, prima creiamo un riferimento di raccolta e quando richiesto inizializziamo con un oggetto di raccolta. Utilizzando questo metodo puoi scegliere di creare la collezione in base ad alcuni criteri.
Aggiunta di elementi a una raccolta (Collection.Add)
Usiamo il metodo Aggiungi per aggiungere nuovi elementi a una raccolta.
items.Add "Apples"
Il codice precedente aggiungerà la stringa “Apples” nella raccolta.
items.Add 1.4
Il codice sopra aggiungerà il doppio 1.4 alla fine della raccolta.
Possiamo anche definire le chiavi di questi elementi. Queste chiavi possono essere utilizzate per accedere agli elementi nella raccolta.
Inserimento di oggetti nella collezione prima o dopo un oggetto esistente
Il metodo Add aggiunge nuovi elementi alla fine della raccolta. Il metodo add ha quattro parametri.
Add(item,[Key],[Before],[After])
Il primo argomento è necessario. È l’oggetto o che vuoi aggiungere alla collezione. Gli argomenti di riposo sono facoltativi. Vedremo gli usi di questi argomenti in questa sezione.
Se vogliamo aggiungere qualche elemento prima o dopo un indice / chiave perticolare, allora usiamo i parametri Before e After del metodo Add.
items.Add True, "b", "cnst" 'Or items.Add True, Before:="cnst"
Entrambe le righe inseriranno un valore booleano prima della chiave “cnst” negli elementi della raccolta VBA.
Per inserire un elemento dopo un indice / elemento / chiave perticolare usiamo il parametro After del metodo Add.
'inserting "Mango" with key "m" after key "cnst" items.Add "Mango", Key:="m", after:="b"
La riga sopra inserirà “Mango” con la chiave “m” dopo la chiave “b”.
Nota: * Le chiavi degli elementi devono essere uniche. Qualsiasi chiave già esistente nella raccolta non verrà accettata. VBA restituirà un errore che “la chiave è già associata a un elemento di questa raccolta”.
Possiamo usarlo a nostro vantaggio per ottenere un elenco unico dalla raccolta.
Accedi agli elementi della collezione (Collection.Item)
Esistono due metodi per accedere agli elementi di una raccolta. . CollectionName (“index / key”)
-
CollectionName.Item (“index / key”)
Ad esempio, per accedere a un membro in una raccolta elementi * all’indice 1 e alla chiave “apl”, posso utilizzare uno qualsiasi dei seguenti codici VBA.
Debug.Print items.Item(1) -- Debug.Print items(1) -- Debug.Print items.Item("apl") -- Debug.Print items("apl")
Come ottenere il conteggio degli elementi in una raccolta? (Collection.Count)
Per ottenere il numero totale di oggetti o elementi in una raccolta, utilizziamo la funzione .Count della raccolta. Il metodo .Count restituisce il numero totale di elementi nella raccolta.
items.Count
La riga sopra fornirà il conteggio degli oggetti presenti nella raccolta.
Come accedere a tutti gli elementi di una collezione?
L’unico modo per accedere a tutti gli elementi della raccolta in VBA sono i loop.
Ripetiamo ogni elemento della raccolta per accedervi. Per questo usiamo il ciclo for. Il ciclo for-each è considerato il modo più veloce e pulito per accedere agli oggetti della raccolta.
Looping attraverso una raccolta in VBA
Esistono vari modi per scorrere la raccolta in VBA. Useremo più elegante per ogni ciclo per iterare attraverso la raccolta.
Troppo scorrere ogni elemento di una raccolta usa questa riga di codice VBA.
For Each itm In items Debug.Print itm Next itm
Rimozione di elementi da una raccolta (Collection.Remove)
Per rimuovere un elemento da una raccolta vba, possiamo utilizzare il metodo Remove. Il metodo remove accetta un argomento. Può essere l’indice o la chiave dell’elemento (se disponibile).
items.Remove (1) 'using index -- items.Remove 1 -- items.Remove ("apl") 'using key -- items.Remove "apl"
Eliminazione della raccolta in VBA
Bene, non puoi eliminare una raccolta in vba. Tuttavia, puoi rimuovere tutti gli elementi di quella raccolta impostandola di nuovo come nuova raccolta.
Set items = New Collection
Questa riga di codice creerà una nuova raccolta sull’indirizzo degli elementi.
Quindi la nostra raccolta verrà svuotata.
Array vs Collection in VBA
normally.
first.
|
above examples.
directly. |
Quindi sì ragazzi, queste sono le basi delle collezioni. Ci sono molti vantaggi e usi della raccolta VBA negli strumenti per ufficio. Li esploreremo insieme. Fino ad allora, se avete domande sulla raccolta o su qualsiasi cosa relativa a Excel / VBA, mettetela nella sezione commenti qui sotto.