/ / / Excel εξαρτάται από VBA συνδυασμούς κουτιά

Εξαρτημένα συνδυαστικά κιβώτια του Excel VBA

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

Ο χρήστης επιλέγει τα ζώα από αναπτυσσόμενη λίστα. Ως αποτέλεσμα, ο χρήστης μπορεί να επιλέξει ένα ζώο από μια δεύτερη αναπτυσσόμενη λίστα.

Εξαρτημένα σύνθετα πλαίσια στο Excel VBA

Ο χρήστης επιλέγει το Sports από μια αναπτυσσόμενη λίστα. Ως αποτέλεσμα, ο χρήστης μπορεί να επιλέξει ένα άθλημα από μια δεύτερη αναπτυσσόμενη λίστα.

Εξαρτημένα σύνθετα πλαίσια στο Excel VBA

Για να δημιουργήσετε αυτό το Userform, εκτελέστε τα παρακάτω βήματα.

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

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

Οθόνη ρύθμισης παραμέτρων χρήστη στο Excel VBA

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

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

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

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

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

6. Ανοίξτε τον επεξεργαστή της Visual Basic.

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

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

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

Private Sub UserForm_Initialize()

With ComboBox1
    .AddItem "Animals"
    .AddItem "Sports"
    .AddItem "Food"
End With

End Sub

Επεξήγηση: Αυτές οι γραμμές κώδικα γεμίζουν το πρώτο σύνθετο πλαίσιο.

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

10. Στο Explorer του Έργου, κάντε διπλό κλικ στο UserForm1.

11. Κάντε διπλό κλικ στο πρώτο σύνθετο πλαίσιο.

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

Private Sub ComboBox1_Change()

Dim index As Integer
index = ComboBox1.ListIndex

ComboBox2.Clear

Select Case index
    Case Is = 0
        With ComboBox2
            .AddItem "Dog"
            .AddItem "Cat"
            .AddItem "Horse"
        End With
    Case Is = 1
        With ComboBox2
            .AddItem "Tennis"
            .AddItem "Swimming"
            .AddItem "Basketball"
        End With
    Case Is = 2
        With ComboBox2
            .AddItem "Pancakes"
            .AddItem "Pizza"
            .AddItem "Chinese"
        End With
End Select

End Sub

Εξήγηση: Το Excel VBA χρησιμοποιεί την τιμή του μεταβλητού δείκτη για να ελέγξει κάθε μεταγενέστερη δήλωση Case για να δει με ποια στοιχεία θα πρέπει να συμπληρωθεί το δεύτερο κουτάκι. Πηγαίνετε στο πρόγραμμα Select Case για να μάθετε περισσότερα σχετικά με τη δομή Select Case.

13. Κάντε διπλό κλικ στο κουμπί Εισαγωγή.

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

Private Sub CommandButton1_Click()

Range("A1").Value = ComboBox2.Value

End Sub

Αποτέλεσμα:

Εξαρτημένα σύνθετα πλαίσια στο Excel VBA

Επίσης διαβάστε: