Πώς να δημιουργήσετε εξαρτημένο Combobox στο VBA Excel;

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

Anonim

Γνωρίζουμε πώς να δημιουργήσουμε ένα αναπτυσσόμενο μενού σε ένα φύλλο εργασίας χρησιμοποιώντας επικύρωση δεδομένων. Αλλά πώς μπορούμε να δημιουργήσουμε ένα αναπτυσσόμενο μενού combobox σε μορφή χρήστη VBA. Αυτή είναι μια από τις βασικές ανάγκες.

Σε αυτό το άρθρο, θα μάθουμε πώς να δημιουργήσουμε ένα εξαρτημένο combobox στο VBA.

Logic For Dependent Combobox στο VBA

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

Αρκετά με τη θεωρία. Ας πάμε σε ένα παράδειγμα για να δούμε πώς λειτουργεί.

ComboBox Ανάλογα με ένα άλλο Combobox

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

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

Το πρώτο combobox πρέπει να αναφέρει τα ονόματα των χωρών και δεν εξαρτάται από καμία τιμή. Έτσι, θα το φορτώσουμε στο συμβάν form_intialize όπως κάνουμε για τη βασική προετοιμασία του combobox.

Κάντε διπλό κλικ στη φόρμα χρήστη. Θα ανοίξει την περιοχή κωδικοποίησης στο UserForm Object. Τώρα, από το αριστερό αναπτυσσόμενο μενού, επιλέξτε μορφή χρήστη. Στη συνέχεια, από το δεξί αναπτυσσόμενο μενού επιλέξτε προετοιμασία.

Θα εισαχθεί ένα κενό υπο -όνομα UserForm_Initialize (). Οτιδήποτε είναι γραμμένο σε αυτό το δευτερεύον στοιχείο θα εκτελεστεί πριν εμφανιστεί η μορφή χρήστη.

Γράφουμε λοιπόν τον κωδικό προετοιμασίας για το combobox εδώ.

Private Sub UserForm_Initialize () χώρες = Array ("Ινδία", "Νεπάλ", "Μπουτάν", "Shree Lanka") UserForm1.ComboBox1.List = δηλώνει Τέλος υπο 

Έχουμε προετοιμάσει το πρώτο μας combobox. Κάθε φορά που θα φορτώνετε τη φόρμα χρήστη, το πρώτο combox θα είναι έτοιμο με το όνομα των χωρών.

Τώρα για να φορτώσουμε το δεύτερο combobox, πρέπει να δούμε ποια τιμή έχει επιλεγεί στο πρώτο combobox1 και να τρέξουμε τον κώδικα κάθε φορά που το combobox1 αλλάζει τις τιμές του. Για αυτό θα χρησιμοποιήσουμε το συμβάν Combobox_AfterUpdate.

Από το αριστερό αναπτυσσόμενο μενού, επιλέξτε combobox1. Από το δεξί αναπτυσσόμενο μενού, επιλέξτε AfterUpdate. Μπορούμε επίσης να χρησιμοποιήσουμε το συμβάν Αλλαγή, αλλά θα παραμείνουμε στο AfterUpdate στο άρθρο.

Τώρα γράψτε τον παρακάτω κώδικα:

Private Sub ComboBox1_AfterUpdate () Select Case ComboBox1.Value Case "India": States = Array ("Delhi", "UP", "UK", "Gujrat", "Kashmir") Case "Nepal": States = Array ("Arun Kshetra "," Janakpur Kshetra "," Kathmandu Kshetra ", _" Gandak Kshetra "," Kapilavastu Kshetra ") Case" Bhutan ": States = Array (" Bumthang "," Trongsa "," Punakha "," Thimphu "," Paro ") Περίπτωση" Shree Lanka ": States = Array (" Galle "," Ratnapura "," Colombo "," Badulla "," Jaffna ") End Select ComboBox2.List = καταστάσεις End Sub 

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

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

Private Sub CommandButton1_Click () country = ComboBox1.Value State = ComboBox2.Value ThisWorkbook.Worksheets ("sheet1"). Range ("G1") = country ThisWorkbook.Worksheets ("sheet1"). Range ("H1") = State Unload Me End Sub 

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

Sub load_userform () UserForm1.Show End Sub 

Τώρα εκτελέστε τον κωδικό load_userform.

Πώς λειτουργεί;

Όταν εκτελείτε το δευτερεύον που έχει κωδικό userform.show, το VBA εκτελεί userform_initialize συμβάντα αμέσως μετά την εκτέλεση της εντολής userform.show. Στο συμβάν userform_intialize έχουμε αρχικοποιήσει το πρώτο combobox που έχει μια λίστα χωρών. Στη συνέχεια, η φόρμα εμφανίζεται στον χρήστη.

Τώρα, όταν ο χρήστης επιλέξει οποιαδήποτε τιμή από το πρώτο combobox, εκτελείται το συμβάν combobox1_AfterUpdate. Αυτό το συμβάν περιέχει τον κωδικό για να ελέγξει ποια τιμή έχει επιλεγεί από τον χρήστη στο combobox1 και με βάση αυτήν την τιμή, ορίζει τον πίνακα καταστάσεων και αρχικοποιεί τις τιμές του combobox2 με πίνακα καταστάσεων.

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

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

Μεταβλητές VBA στο Excel| Το VBA σημαίνει Visual Basic for Applications. Είναι μια γλώσσα προγραμματισμού από τη Microsoft. Χρησιμοποιείται με εφαρμογές του Microsoft Office, όπως MSExcel, MS-Word και MS-Access, ενώ οι μεταβλητές VBA είναι συγκεκριμένες λέξεις-κλειδιά.

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

Επιχειρήματα ByRef και ByVal | Όταν ένα όρισμα μεταβιβάζεται ως όρισμα ByRef σε διαφορετικό υποσύστημα ή συνάρτηση, αποστέλλεται η αναφορά της πραγματικής μεταβλητής. Τυχόν αλλαγές που γίνονται στο αντίγραφο της μεταβλητής, θα αντικατοπτρίζονται στο αρχικό όρισμα.

Διαγράψτε φύλλα χωρίς προτροπές επιβεβαίωσης χρησιμοποιώντας VBA στο Microsoft Excel | Δεδομένου ότι διαγράφετε φύλλα χρησιμοποιώντας VBA, γνωρίζετε τι κάνετε. Θα θέλατε να πείτε στο Excel να μην εμφανίζει αυτήν την προειδοποίηση και να διαγράψει το καταραμένο φύλλο.

Προσθήκη και αποθήκευση νέου βιβλίου εργασίας χρησιμοποιώντας το VBA στο Microsoft Excel 2016| Σε αυτόν τον κώδικα, δημιουργήσαμε πρώτα μια αναφορά σε ένα αντικείμενο βιβλίου εργασίας. Και στη συνέχεια το αρχικοποιήσαμε με ένα νέο αντικείμενο βιβλίου εργασίας. Το πλεονέκτημα αυτής της προσέγγισης είναι ότι μπορείτε να κάνετε εύκολα λειτουργίες σε αυτό το νέο βιβλίο εργασίας. Όπως αποθήκευση, κλείσιμο, διαγραφή κλπ

Εμφάνιση μηνύματος στη γραμμή κατάστασης του Excel VBA| Η γραμμή κατάστασης στο excel μπορεί να χρησιμοποιηθεί ως οθόνη κώδικα. Όταν ο κώδικας VBA είναι μεγάλος και εκτελείτε πολλές εργασίες χρησιμοποιώντας το VBA, συχνά απενεργοποιείτε την ενημέρωση της οθόνης, έτσι ώστε να μην βλέπετε αυτήν την οθόνη να τρεμοπαίζει.

Απενεργοποιήστε τα μηνύματα προειδοποίησης χρησιμοποιώντας το VBA στο Microsoft Excel 2016| Αυτός ο κώδικας όχι μόνο απενεργοποιεί τις ειδοποιήσεις VBA αλλά επίσης αυξάνει την αποδοτικότητα χρόνου του κώδικα. Ας δούμε πώς.

Δημοφιλή άρθρα:

50 συντομεύσεις Excel για να αυξήσετε την παραγωγικότητά σας | Γίνετε πιο γρήγοροι στην εργασία σας. Αυτές οι 50 συντομεύσεις θα σας κάνουν να εργάζεστε ακόμη πιο γρήγορα στο Excel.

Η συνάρτηση VLOOKUP στο Excel | Αυτή είναι μια από τις πιο δημοφιλείς και δημοφιλείς λειτουργίες του excel που χρησιμοποιείται για την αναζήτηση τιμών από διαφορετικά εύρη και φύλλα.

COUNTIF στο Excel 2016 | Μετρήστε τιμές με συνθήκες χρησιμοποιώντας αυτήν την εκπληκτική συνάρτηση. Δεν χρειάζεται να φιλτράρετε τα δεδομένα σας για να μετρήσετε συγκεκριμένες τιμές. Η λειτουργία Countif είναι απαραίτητη για την προετοιμασία του ταμπλό σας.

Πώς να χρησιμοποιήσετε τη συνάρτηση SUMIF στο Excel | Αυτή είναι μια άλλη βασική λειτουργία του ταμπλό. Αυτό σας βοηθά να συνοψίσετε τιμές υπό συγκεκριμένες συνθήκες.