Excel VBA Multicolumn Combo Box - Εύκολες μακροεντολές Excel

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

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

Η μορφή χρήστη που πρόκειται να δημιουργήσουμε φαίνεται ως εξής:

Για να δημιουργήσετε αυτήν τη μορφή χρήστη, εκτελέστε τα ακόλουθα βήματα.

1. Ανοίξτε το Visual Basic Editor. Εάν η Εξερεύνηση έργου δεν είναι ορατή, κάντε κλικ στην επιλογή Προβολή, Εξερεύνηση έργου.

2. Κάντε κλικ στην επιλογή Εισαγωγή, Μορφή χρήστη. Εάν η Εργαλειοθήκη δεν εμφανίζεται αυτόματα, κάντε κλικ στην επιλογή Προβολή, Εργαλειοθήκη. Η οθόνη σας θα πρέπει να ρυθμιστεί όπως παρακάτω.

3. Προσθέστε την ετικέτα, το σύνθετο πλαίσιο και τα κουμπιά εντολών. Μόλις ολοκληρωθεί αυτό, το αποτέλεσμα θα πρέπει να είναι σύμφωνο με την εικόνα του Userform που εμφανίστηκε νωρίτερα. Για παράδειγμα, δημιουργήστε ένα στοιχείο ελέγχου σύνθετου πλαισίου κάνοντας κλικ στο ComboBox από την Εργαλειοθήκη. Στη συνέχεια, μπορείτε να σύρετε ένα σύνθετο πλαίσιο στο Userform.

4. Μπορείτε να αλλάξετε τα ονόματα και τους υπότιτλους των στοιχείων ελέγχου. Τα ονόματα χρησιμοποιούνται στον κώδικα VBA του Excel. Οι υπότιτλοι είναι εκείνοι που εμφανίζονται στην οθόνη σας. Είναι καλή πρακτική να αλλάζουμε τα ονόματα των στοιχείων ελέγχου, αλλά δεν είναι απαραίτητο εδώ επειδή έχουμε μόνο μερικά στοιχεία ελέγχου σε αυτό το παράδειγμα. Για να αλλάξετε τη λεζάντα της φόρμας χρήστη, της ετικέτας και των κουμπιών εντολών, κάντε κλικ στην επιλογή Προβολή, Παράθυρο ιδιοτήτων και κάντε κλικ σε κάθε στοιχείο ελέγχου.

5. Για να εμφανίσετε το Userform, τοποθετήστε ένα κουμπί εντολών στο φύλλο εργασίας σας και προσθέστε την ακόλουθη γραμμή κώδικα:

Private Sub CommandButton1_Click ()
UserForm1.Show
Τέλος υπο

Τώρα θα δημιουργήσουμε το Sub UserForm_Initialize. Όταν χρησιμοποιείτε τη μέθοδο Εμφάνιση για τη μορφή χρήστη, αυτό το δευτερεύον στοιχείο θα εκτελεστεί αυτόματα.

6. Ανοίξτε το Visual Basic Editor.

7. Στο Project Explorer, κάντε δεξί κλικ στο UserForm1 και, στη συνέχεια, κάντε κλικ στην επιλογή Προβολή κώδικα.

8. Επιλέξτε Userform από την αριστερή αναπτυσσόμενη λίστα. Επιλέξτε Αρχικοποίηση από τη δεξιά αναπτυσσόμενη λίστα.

9. Προσθέστε τις ακόλουθες γραμμές κώδικα:

Private Sub UserForm_Initialize ()
ComboBox1.ColumnCount = 2
Χαμηλή ταινία (1 έως 5, 1 έως 2) ως συμβολοσειρά
Dim i Ως ακέραιος, j Ως ακέραιος
Ταινίες (1, 1) = "Άρχοντας των δαχτυλιδιών"
Ταινίες (2, 1) = "Ταχύτητα"
Ταινίες (3, 1) = "Πόλεμοι των Άστρων"
Ταινίες (4, 1) = "Ο Νονός"
Ταινίες (5, 1) = "Pulp Fiction"
Ταινίες (1, 2) = "Περιπέτεια"
Ταινίες (2, 2) = "Δράση"
Ταινίες (3, 2) = "Sci-Fi"
Ταινίες (4, 2) = "Έγκλημα"
Ταινίες (5, 2) = "Δράμα"
ComboBox1.List = Ταινίες
Τέλος υπο

Επεξήγηση: Η πρώτη γραμμή κώδικα ορίζει τον αριθμό των στηλών του συνδυαστικού πλαισίου σε 2. Αντί να ορίσετε τον αριθμό των στηλών κατά τη διάρκεια εκτέλεσης, μπορείτε επίσης να διαμορφώσετε αυτήν τη ρύθμιση κατά το χρόνο σχεδίασης. Για να επιτευχθεί αυτό, κάντε δεξί κλικ στο στοιχείο ελέγχου σύνθετου πλαισίου, κάντε κλικ στην επιλογή Ιδιότητες και ορίστε την ιδιότητα ColumnCount στο 2. Στη συνέχεια, δηλώνουμε και αρχικοποιούμε έναν δισδιάστατο πίνακα. Η τελευταία γραμμή κώδικα εκχωρεί τον πίνακα στο σύνθετο πλαίσιο.

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

10. Στο Project Explorer, κάντε διπλό κλικ στο UserForm1.

11. Κάντε διπλό κλικ στο κουμπί OK.

12. Προσθέστε τις ακόλουθες γραμμές κώδικα:

Private Sub CommandButton1_Click ()
Ξεφορτώστε Με
MsgBox "Επιλέξατε" & ComboBox1.Value
Στο Σφάλμα Συνέχιση Επόμενο
MsgBox "Σας αρέσει" & ComboBox1.Column (1) & "ταινίες"
Τέλος υπο

Σημείωση: αυτές οι γραμμές κώδικα κλείνουν τη μορφή χρήστη του Excel VBA και εμφανίζουν το επιλεγμένο στοιχείο και είδος. Η δήλωση "On Error Resume Next" αγνοεί το σφάλμα όταν ο χρήστης συμπληρώνει τη δική του ταινία (σε αυτήν την περίπτωση δεν υπάρχει διαθέσιμο είδος).

13. Κάντε διπλό κλικ στο κουμπί Ακύρωση.

14. Προσθέστε την ακόλουθη γραμμή κωδικού:

Private Sub CommandButton2_Click ()
Ξεφορτώστε Με
Τέλος υπο

Αποτέλεσμα όταν επιλέξετε Ταχύτητα και κάντε κλικ στο OK.

Θα βοηθήσει στην ανάπτυξη του τόπου, μοιράζονται τη σελίδα με τους φίλους σας

wave wave wave wave wave