Συλλογή VBA - Πώς να δημιουργήσετε αντικείμενο συλλογής στο VBA;

Πίνακας περιεχομένων

Αντικείμενο συλλογής Excel VBA

Στην κωδικοποίηση VBA, εκτός από την υπάρχουσα συλλογή στοιχείων σε μια ομάδα, μπορούμε να δημιουργήσουμε τις ομάδες συλλογής μας. Σε πολλά άρθρα μας, έχουμε μιλήσει για μεταβλητές αντικειμένων και σε αυτό το σεμινάριο, θα εξετάσουμε λεπτομερώς το αντικείμενο συλλογής VBA.

Εάν έχετε διαβάσει το προηγούμενο άρθρο μας "VBA Arrays", αυτό θα είναι πολύ πιο εύκολο για εσάς να το καταλάβετε. Οι πίνακες χρησιμοποιούνται για την ομαδοποίηση μεταβλητών κάτω από μια οροφή. Παρομοίως, η Συλλογή χρησιμοποιείται επίσης για την αποθήκευση μιας ομάδας μεταβλητών.

Οι συλλογές χρησιμοποιούνται για την αποθήκευση αντικειμένων. Είναι πολύ πιο ευέλικτες από τις συστοιχίες VBA, ενώ οι συστοιχίες έχουν σταθερά όρια μεγέθους, αλλά οι αναγνώστες δεν έχουν κανένα όριο σταθερού μεγέθους σε δεδομένη χρονική στιγμή και ακόμη και δεν απαιτούν χειροκίνητη αλλαγή μεγέθους.

Η συλλογή VBA μοιάζει πολύ με το "Λεξικό VBA", αλλά το λεξικό απαιτεί την εξωτερική αναφορά αντικειμένου για να το ρυθμιστεί κάτω από το παράθυρο αναφοράς αντικειμένου Με το λεξικό VBA, πρέπει να ορίσουμε τον τύπο αναφοράς ως "Microsoft Scripting Runtime", αλλά η Συλλογή δεν απαιτεί επιπλέον εξαρτήματα.

Πώς να δημιουργήσετε αντικείμενο συλλογής στο VBA;

Για να ξεκινήσετε πρώτα με τη συλλογή, πρέπει να δηλώσουμε τη μεταβλητή ως "Συλλογή".

Κώδικας:

Sub Collection_Example () Dim Col As Collection End Sub

Δεδομένου ότι η συλλογή είναι μια μεταβλητή αντικειμένου, πρέπει να ορίσουμε την αναφορά αντικειμένου δημιουργώντας μια νέα παρουσία.

Κώδικας:

Υπο Συλλογή_ Παράδειγμα () Dim Col As Collection Set Col = Νέα Συλλογή End Sub

Τώρα με τη μεταβλητή, μπορούμε να έχουμε πρόσβαση σε όλες τις μεθόδους της μεταβλητής συλλογής "Col."

Κώδικας:

Sub Collection_Example () Dim Col As Collection Set Col = Νέα Συλλογή Col. End Sub

Πριν χρησιμοποιήσουμε αυτές τις μεθόδους, πρέπει να δηλώσουμε μια μεταβλητή ως συμβολοσειρά.

Κώδικας:

Sub Collection_Example () Dim Col As Collection Set Col = Νέα συλλογή Dim ColResult as String End Sub

Τώρα χρησιμοποιήστε τη μεταβλητή "Col" για να επιλέξετε τη μέθοδο "Προσθήκη".

Κώδικας:

Υπο Συλλογή_ Παράδειγμα () Dim Col As Συλλογή Σύνολο Col = Νέα Συλλογή Col. Προσθήκη End Sub

Στην μέθοδο Προσθήκη, έχουμε συγκεκριμένες παραμέτρους. Ας υποθέσουμε ότι αποθηκεύουμε εμπορικά σήματα για κινητές συσκευές με τη μέση τιμή πώλησης στην αγορά.

Στην ενότητα Στοιχείο, το όρισμα εισάγει την τιμή του κινητού.

Κώδικας:

Υπο Συλλογή_ Παράδειγμα () Dim Col As Collection Set Col = Νέα Συλλογή Col. Προσθήκη στοιχείου: = 15000, End Sub

Στη συνέχεια, στο όρισμα Key , εισαγάγετε την επωνυμία του κινητού.

Κώδικας:

Sub Collection_Example () Dim Col As Collection Collection Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" End Sub

Για τη μεταβλητή "ColResult", θα αποθηκεύσουμε το αποτέλεσμα της μεταβλητής αντικειμένου "Col".

Κώδικας:

Sub Collection_Example () Dim Col As Collection Set Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col (End Sub

Όταν ανοίγετε την παρένθεση της μεταβλητής "Col", μπορούμε να δούμε το όρισμα ως Index. Για αυτό το επιχείρημα, πρέπει να παρέχουμε την κρίσιμη τιμή ορίσματος από τη μέθοδο Συλλογή προσθήκης, δηλαδή το όνομα της επωνυμίας για κινητά.

Κώδικας:

Sub Collection_Example () Dim Col As Collection Set Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col ("Redmi") End Sub

Τώρα ας δείξουμε το αποτέλεσμα στο πλαίσιο μηνυμάτων στο VBA.

Κώδικας:

Sub Collection_Example () Dim Col As Collection Collection Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col ("Redmi") MsgBox ColResult End Sub

Εντάξει, τελειώσαμε όταν εκτελούμε τον κώδικα. Πρέπει να δούμε την τιμή της μάρκας για κινητά, "Redmi".

Καλύτερη κατανόηση των παραμέτρων κλειδιού και στοιχείων

Είμαι βέβαιος ότι δεν είναι εύκολο να κατανοήσουμε τις παραμέτρους του αντικειμένου Συλλογή. Επιτρέψτε μου να σας εξηγήσω ένα απλό παράδειγμα.

Φανταστείτε ότι έχετε ένα μενού φρούτων με το όνομα και την τιμή των φρούτων. Ας υποθέσουμε ότι ψάχνετε την τιμή των φρούτων "Apple" με το όνομα του φρούτου.

Για να ψάξουμε την τιμή του φρούτου, πρέπει να αναφέρουμε το όνομα του φρούτου, δηλαδή, στη συλλογή της γλώσσας VBA Το όνομα του φρούτου είναι το κλειδί και η τιμή του φρούτου είναι "Item".

Είναι σαν να εφαρμόζουμε τη συνάρτηση VLOOKUP ή HLOOKUP, με βάση την τιμή αναζήτησης και θα πάρουμε τα απαιτούμενα δεδομένα από τη βάση δεδομένων. Εδώ η τιμή αναζήτησης είναι το κλειδί και το αποτέλεσμα είναι το στοιχείο.

Προηγμένο παράδειγμα

Φανταστείτε ότι είστε διαχειριστής καταστήματος σε ένα από τα καταστήματα λιανικής και είστε υπεύθυνοι για τη διαχείριση των ερωτημάτων των πελατών. Ένα τέτοιο ερώτημα πελάτη είναι μια έρευνα σχετικά με την τιμή του προϊόντος.

It would help if you allowed the customer to search the price of the product with complete information. Similarly, you need to show the message in case of no data found. Below is the example code which will present the input box in front of the user. They require to enter the name of the product they are looking for. If the product is there in the collection, it will show the price of the mentioned product, or else it will show the message as “The Product you are searching for doesn’t exist.”

Code:

Sub Collection_Example2 () Dim ItemsCol As Collection Dim ColResult As String Set ItemsCol = New Collection ItemsCol.Add Key: = "Apple", Item: = 150 ItemsCol.Add Key: = "Orange", Item: = 75 ItemsCol.Add Key: = "Water Melon", Item: = 45 ItemsCol.Add Key: = "Mush Millan", Item: = 85 ItemsCol.Add Key: = "Mango", Item: = 65 ColResult = Application.InputBox (Prompt: = "Παρακαλώ Εισαγάγετε το όνομα του φρούτου ") Εάν το ItemsCol (ColResult)" "Στη συνέχεια, το MsgBox" Η τιμή του φρούτου "& ColResult &" είναι: "& ItemsCol (ColResult) Άλλες η συλλογή "End if End Sub

ενδιαφέροντα άρθρα...