Μια συλλογή είναι ένας τύπος δεδομένων που αποθηκεύει αντικείμενα ακριβώς όπως οι πίνακες (αλλά διαφορετικοί). Κατά τη σύνταξη βασικών κωδικών VBA, πρέπει να έχετε χρησιμοποιήσει βιβλία εργασίας, φύλλα εργασίας, εύρη κλπ. Όλα είναι συλλογές. Σε αυτό το άρθρο, θα μάθουμε για τις συλλογές VBA.
Τι είναι μια Συλλογή στο VBA;
Μια συλλογή είναι ένας τύπος δεδομένων που αποθηκεύει παρόμοιο τύπο αντικειμένων ακριβώς όπως οι πίνακες.
Σε αντίθεση με τους πίνακες, το μέγεθος του μπορεί να αυξηθεί ή να μειωθεί δυναμικά σύμφωνα με τις απαιτήσεις.
Μπορείτε να προσθέσετε, να βρείτε, να φέρετε και να διαγράψετε στοιχεία από συλλογές.
Σε αντίθεση με τους πίνακες, δεν μπορείτε να αλλάξετε τις τιμές των στοιχείων στις συλλογές. Εάν το θέλετε, χρησιμοποιήστε πίνακες ως στοιχείο στη συλλογή.
Μια συλλογή έχει 4 ιδιότητες ή μεθόδους που σχετίζονται με αυτήν.
Συλλογή. Προσθήκη συλλογής. Συλλογή αντικειμένων. Συλλογή αριθμού. Αφαίρεση
Μέσα από αυτό το άρθρο, θα διερευνήσει τη χρήση αυτών των ιδιοτήτων.
Πώς να δημιουργήσετε μια συλλογή στο VBA;
Μια συλλογή είναι ένα αντικείμενο, επομένως είναι απαραίτητη η δήλωση και η αρχικοποίησή της. Όπως κάθε άλλο αντικείμενο στο VBA, υπάρχουν δύο μέθοδοι δημιουργίας μιας συλλογής στο VBA.
1. Άμεση Δημιουργία
Χαμηλά αντικείμενα ως νέα συλλογή
Στην παραπάνω μέθοδο, το αντικείμενο δημιουργείται αμέσως. Μπορείτε να αρχίσετε να χρησιμοποιείτε αυτήν τη συλλογή για τις απαιτήσεις σας αμέσως.
2. Καθυστερημένη Δημιουργία
Απομνημόνευση στοιχείων ως στοιχεία συλλογής = Νέα συλλογή
Σε αυτή τη μέθοδο, πρώτα δημιουργούμε μια αναφορά συλλογής και όταν απαιτείται αρχικοποιούμε με ένα αντικείμενο συλλογής. Χρησιμοποιώντας αυτήν τη μέθοδο μπορείτε να επιλέξετε να δημιουργήσετε τη συλλογή με βάση ορισμένα κριτήρια.
Προσθήκη στοιχείων σε μια συλλογή (Collection.Add)
Χρησιμοποιούμε τη μέθοδο Προσθήκη για να προσθέσουμε νέα στοιχεία σε μια συλλογή.
στοιχεία.Προσθέστε "Μήλα"
Ο παραπάνω κώδικας θα προσθέσει συμβολοσειρά "Μήλα" στη συλλογή.
στοιχεία. Προσθήκη 1.4
Ο παραπάνω κωδικός θα προσθέσει διπλό 1,4 στο τέλος της συλλογής.
Μπορούμε επίσης να ορίσουμε κλειδιά σε αυτά τα στοιχεία. Αυτά τα κλειδιά μπορούν να χρησιμοποιηθούν για πρόσβαση στα στοιχεία της συλλογής.
Εισαγωγή στοιχείων στη συλλογή πριν ή μετά από ένα υπάρχον στοιχείο
Η μέθοδος Προσθήκη προσθέτει νέα στοιχεία στο τέλος της συλλογής.
Η μέθοδος προσθήκης έχει τέσσερις παραμέτρους.
Προσθήκη (στοιχείο, [Κλειδί], [Πριν], [Μετά])
Το πρώτο επιχείρημα είναι απαραίτητο. Είναι το αντικείμενο ή που θέλετε να προσθέσετε στη συλλογή. Τα επιχειρήματα ανάπαυσης είναι προαιρετικά. Θα δούμε τις χρήσεις αυτών των επιχειρημάτων σε αυτήν την ενότητα.
Αν θέλουμε να προσθέσουμε κάποιο στοιχείο πριν ή μετά από κάποιο συγκεκριμένο ευρετήριο/κλειδί, τότε χρησιμοποιούμε τις παραμέτρους Πριν και Μετά της μεθόδου Προσθήκη.
στοιχεία.Προσθήκη αληθούς, "b", "cnst" 'items αντικειμένων. Προσθήκη αληθινής, πριν: = "cnst"
Και οι δύο γραμμές θα εισαγάγουν μια boolean τιμή πριν από το κλειδί "cnst" στα στοιχεία συλλογής VBA.
Για να εισαγάγετε ένα στοιχείο μετά από έναν ειδικό δείκτη/στοιχείο/κλειδί χρησιμοποιούμε την παράμετρο After της μεθόδου Add.
"εισαγωγή" Mango "με το κλειδί" m "μετά τα στοιχεία κλειδιού" cnst ". Προσθέστε" Mango ", Key: =" m ", after: =" b "
Πάνω από τη γραμμή θα εισαχθεί το "Mango" με το κλειδί "m" μετά το πλήκτρο "b".
Σημείωση: Τα κλειδιά των αντικειμένων πρέπει να είναι μοναδικά. Οποιοδήποτε κλειδί υπάρχει ήδη στη συλλογή δεν θα γίνει αποδεκτό. Το VBA θα επιστρέψει ένα σφάλμα ότι "το κλειδί σχετίζεται ήδη με ένα στοιχείο αυτής της συλλογής".
Μπορούμε να το χρησιμοποιήσουμε προς όφελός μας και να λάβουμε μια μοναδική λίστα από τη συλλογή.
Πρόσβαση στα αντικείμενα της συλλογής (Στοιχείο συλλογής)
Υπάρχουν δύο μέθοδοι πρόσβασης στα στοιχεία μιας συλλογής.
- Όνομα συλλογής ("ευρετήριο/κλειδί")
- CollectionName.Item ("ευρετήριο/κλειδί")
Για παράδειγμα, για πρόσβαση σε ένα μέλος σε μια συλλογή αντικείμενα στο ευρετήριο 1 και το κλειδί "apl", μπορώ να χρησιμοποιήσω οποιονδήποτε από τους παρακάτω κωδικούς VBA.
Εντοπισμός σφαλμάτων.Εκτύπωση στοιχείων. Στοιχείο (1) - Εντοπισμός σφαλμάτων. Στοιχεία εκτύπωσης (1) - Εντοπισμός σφαλμάτων. Στοιχεία εκτύπωσης. Στοιχείο ("apl") - Εντοπισμός σφαλμάτων. Στοιχεία εκτύπωσης ("apl")
Πώς να μετρήσετε τα στοιχεία μιας συλλογής; (Συλλογή. Αριθμός)
Για να λάβουμε συνολικό αριθμό αντικειμένων ή αντικειμένων σε μια συλλογή, χρησιμοποιούμε τη συνάρτηση .Count συλλογής. Η μέθοδος .Count επιστρέφει τον συνολικό αριθμό στοιχείων στη συλλογή.
στοιχεία. Αριθμός
Πάνω από τη γραμμή θα δώσει τον αριθμό των αντικειμένων που έχει η συλλογή.
Πώς να αποκτήσετε πρόσβαση σε όλα τα στοιχεία μιας συλλογής;
Ο μόνος τρόπος πρόσβασης σε όλα τα στοιχεία της συλλογής στο VBA είναι οι βρόχοι. Επαναλαμβάνουμε κάθε στοιχείο της συλλογής για πρόσβαση σε αυτά. Για αυτό χρησιμοποιούμε για βρόχο. Ο βρόχος για κάθε θεωρείται ο γρηγορότερος και καθαρότερος τρόπος πρόσβασης σε αντικείμενα συλλογής.
Looping Through a Collection στο VBA
Υπάρχουν διάφοροι τρόποι για να περιηγηθείτε στη συλλογή στο VBA. Θα χρησιμοποιήσουμε τα πιο κομψά για κάθε βρόχο για να επαναλάβουμε τη συλλογή.
Πολύ βρόχος σε κάθε στοιχείο μιας συλλογής απλά χρησιμοποιήστε αυτήν τη γραμμή κώδικα VBA.
Για κάθε itm Σε αντικείμενα Debug.Print itm Next itm
Αφαίρεση στοιχείων από μια συλλογή (Collection.Remove)
Για να αφαιρέσετε ένα στοιχείο από μια συλλογή vba, μπορούμε να χρησιμοποιήσουμε τη μέθοδο Κατάργηση. Η μέθοδος αφαίρεσης λαμβάνει ένα όρισμα. Μπορεί να είναι το ευρετήριο ή το κλειδί του στοιχείου (εάν υπάρχει).
στοιχεία. Αφαιρέστε (1) "χρησιμοποιώντας ευρετήριο - στοιχεία. Αφαιρέστε 1 - στοιχεία. Αφαιρέστε (" apl ")" χρησιμοποιώντας στοιχεία - κλειδιά. Αφαιρέστε "apl"
Διαγραφή Συλλογής σε VBA
Λοιπόν, δεν μπορείτε να διαγράψετε μια συλλογή στο vba. Ωστόσο, μπορείτε να καταργήσετε όλα τα στοιχεία αυτής της συλλογής ορίζοντάς την ξανά ως νέα συλλογή.
Ορισμός στοιχείων = Νέα συλλογή
Αυτή η γραμμή κώδικα θα δημιουργήσει μια νέα συλλογή στη διεύθυνση των στοιχείων. Ως εκ τούτου, η συλλογή μας θα αδειάσει.
Array vs Collection στο VBA
Πίνακας |
Συλλογή |
Λοιπόν, ναι, αυτά είναι τα βασικά των συλλογών. Υπάρχουν πολλά οφέλη και χρήσεις της συλλογής VBA σε εργαλεία γραφείου. Θα τα εξερευνήσουμε μαζί. Μέχρι τότε, εάν έχετε ερωτήματα σχετικά με τη συλλογή ή οτιδήποτε σχετίζεται με το Excel/VBA, καταχωρίστε την παρακάτω ενότητα σχολίων.