Μετάβαση στο κύριο περιεχόμενο

Πώς να συμπληρώσετε το πλαίσιο κειμένου με βάση την επιλογή combobox στο UserForm στο Excel;

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

Συμπληρώστε το πλαίσιο κειμένου με βάση την επιλογή combobox στο Userform με VBA


Συμπληρώστε το πλαίσιο κειμένου με βάση την επιλογή combobox στο Userform με VBA

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

1. Πάτα το άλλος + F11 για να ανοίξετε το Microsoft Visual Basic για εφαρμογές παράθυρο.

2. Στο Microsoft Visual Basic για εφαρμογές παράθυρο, κάντε κλικ στην επιλογή Κύριο θέμα > Μορφή χρήστη. Δείτε το στιγμιότυπο οθόνης:

3. Στη συνέχεια, εισαγάγετε ένα στοιχείο ελέγχου πλαισίου Combo και ένα πλαίσιο ελέγχου κειμένου στη μορφή χρήστη που δημιουργήθηκε όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης.

4. Κάντε δεξί κλικ σε οποιοδήποτε κενό διάστημα της φόρμας χρήστη και, στη συνέχεια, κάντε κλικ στο Προβολή κωδικού από το μενού περιβάλλοντος. Δείτε το στιγμιότυπο οθόνης:

5. Στο παράθυρο ανοίγματος Userform (Code), αντιγράψτε και επικολλήστε τον παρακάτω κώδικα VBA για να αντικαταστήσετε το πρωτότυπο.

Κωδικός VBA: Συμπληρώστε το πλαίσιο κειμένου με βάση την επιλογή combobox στο Userform

Dim xRg As Range
'Updated by Extendoffice 2018/1/30
Private Sub UserForm_Initialize()
    Set xRg = Worksheets("Sheet5").Range("A2:B8")
    Me.ComboBox1.List = xRg.Columns(1).Value
End Sub
Private Sub ComboBox1_Change()
    Me.TextBox1.Text = Application.WorksheetFunction.VLookup(Me.ComboBox1.Value, xRg, 2, False)
End Sub

Note: Στον κώδικα, το A2:B2 είναι το εύρος που περιέχει τις τιμές που θα συμπληρώσετε ξεχωριστά τόσο στο σύνθετο πλαίσιο Userform όσο και στο πλαίσιο κειμένου. Και το Sheet5 είναι το όνομα του φύλλου εργασίας που περιέχει το εύρος δεδομένων. Αλλάξτε τα όπως χρειάζεστε.

6. Πάτα το άλλος + Q πλήκτρα για έξοδο από το Microsoft Visual Basic για εφαρμογές παράθυρο.

7. κλικ Εργολάβος > Κύριο θέμα > Κουμπί εντολών (ActiveX Control) για να εισαγάγετε ένα κουμπί εντολής στο φύλλο εργασίας.

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

Κωδικός VBA: Εμφάνιση φόρμας χρήστη

Private Sub CommandButton1_Click()
'Updated by Extendoffice 2018/1/30
    UserForm1.Show
End Sub

9. Απενεργοποιήστε τη λειτουργία σχεδίασης στο βιβλίο εργασίας.

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


Σχετικά άρθρα:

Τα καλύτερα εργαλεία παραγωγικότητας γραφείου

Δημοφιλή χαρακτηριστικά: Εύρεση, επισήμανση ή αναγνώριση διπλότυπων   |  Διαγραφή κενών γραμμών   |  Συνδυάστε στήλες ή κελιά χωρίς απώλεια δεδομένων   |   Γύρος χωρίς φόρμουλα ...
Σούπερ Αναζήτηση: VLookup πολλαπλών κριτηρίων    VLookup πολλαπλών τιμών  |   VLookup σε πολλά φύλλα   |   Ασαφής αναζήτηση ....
Σύνθετη αναπτυσσόμενη λίστα: Γρήγορη δημιουργία αναπτυσσόμενης λίστας   |  Εξαρτημένη αναπτυσσόμενη λίστα   |  Πολλαπλή αναπτυσσόμενη λίστα ....
Διαχειριστής στήλης: Προσθέστε έναν συγκεκριμένο αριθμό στηλών  |  Μετακίνηση στηλών  |  Εναλλαγή κατάστασης ορατότητας κρυφών στηλών  |  Συγκρίνετε εύρη και στήλες ...
Επιλεγμένα Χαρακτηριστικά: Εστίαση πλέγματος   |  Προβολή σχεδίου   |   Μεγάλη Formula Bar    Διαχείριση βιβλίου εργασίας & φύλλου   |  Βιβλιοθήκη πόρων (Αυτόματο κείμενο)   |  Επιλογή ημερομηνίας   |  Συνδυάστε φύλλα εργασίας   |  Κρυπτογράφηση/Αποκρυπτογράφηση κελιών    Αποστολή email ανά λίστα   |  Σούπερ φίλτρο   |   Ειδικό φίλτρο (φίλτρο με έντονη γραφή/πλάγια γραφή/διαγραφή...) ...
Κορυφαία 15 σύνολα εργαλείων12 Κείμενο Εργαλεία (Προσθήκη κειμένου, Κατάργηση χαρακτήρων, ...)   |   50 + Διάγραμμα Τύποι (Gantt διάγραμμα, ...)   |   40+ Πρακτικό ΜΑΘΗΜΑΤΙΚΟΙ τυποι (Υπολογίστε την ηλικία με βάση τα γενέθλια, ...)   |   19 Εισαγωγή Εργαλεία (Εισαγωγή κωδικού QR, Εισαγωγή εικόνας από το μονοπάτι, ...)   |   12 Μετατροπή Εργαλεία (Αριθμοί σε λέξεις, Μετατροπή Συναλλάγματος, ...)   |   7 Συγχώνευση & διαχωρισμός Εργαλεία (Σύνθετες σειρές συνδυασμού, Διαίρεση κελιών, ...)   |   ... κι αλλα

Αυξήστε τις δεξιότητές σας στο Excel με τα Kutools για Excel και απολαύστε την αποτελεσματικότητα όπως ποτέ πριν. Το Kutools για Excel προσφέρει πάνω από 300 προηγμένες δυνατότητες για την ενίσχυση της παραγωγικότητας και την εξοικονόμηση χρόνου.  Κάντε κλικ εδώ για να αποκτήσετε τη δυνατότητα που χρειάζεστε περισσότερο...

kte καρτέλα 201905


Το Office Tab φέρνει τη διεπαφή με καρτέλες στο Office και κάνει την εργασία σας πολύ πιο εύκολη

  • Ενεργοποίηση επεξεργασίας και ανάγνωσης καρτελών σε Word, Excel, PowerPoint, Publisher, Access, Visio και Project.
  • Ανοίξτε και δημιουργήστε πολλά έγγραφα σε νέες καρτέλες του ίδιου παραθύρου και όχι σε νέα παράθυρα.
  • Αυξάνει την παραγωγικότητά σας κατά 50% και μειώνει εκατοντάδες κλικ του ποντικιού για εσάς κάθε μέρα!
Comments (11)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
can the same be don on excel sheet? instead of userform? i am using sheet not userform
This comment was minimized by the moderator on the site
alguem poderia me ajudar estou tentando carregar a combobox e puxar informações para text box so que esta dando erro 381

Private Sub ComboNome_Emissor_Change()
TextArea.Text = ComboNome_Emissor.List(ComboNome_Emissor.ListIndex, 1)
TextTreinamento_PT.Text = ComboNome_Emissor.List(ComboNome_Emissor.ListIndex, 3)
TextTreinamento_EC.Text = ComboNome_Emissor.List(ComboNome_Emissor.ListIndex, 5)
TexStatus_Bloqueio.Text = ComboNome_Emissor.List(ComboNome_Emissor.ListIndex, 6)


End Sub
This comment was minimized by the moderator on the site
The method is very simple and populates the combo box quite efficiently. However, when I try populating the text box, I get a run-time error '1004': Unable to get the VLookup property of the WorksheetFunction class. Kindly assist with resolving this error.
This comment was minimized by the moderator on the site
I just tried this code and was running into the same issue. I realized I had the xRg variable inside the UserForm block, so it was not being accessed by my ComboBox function. Maybe others are running into the same issue
This comment was minimized by the moderator on the site
Hi,
May I have your Office version? I need the feedback to check for the error.
Thanks for your comment.
This comment was minimized by the moderator on the site
office 2010 32 bit
This comment was minimized by the moderator on the site
Good day,
I have tried the code in Office 2010 32 bit, but no errors occured.
Please make sure the sheet name and cell range in the first VBA code are the same with your actual sheet name and range.
Thanks for your comment.
This comment was minimized by the moderator on the site
Hi,
i have same issue with office 2013. Any solution please
This comment was minimized by the moderator on the site
i have the same problem....
This comment was minimized by the moderator on the site
I too have the same problem
This comment was minimized by the moderator on the site
Hi Chaylon,
Have you replaced the sheet name in the below code line with your actual used worksheet name?
Set xRg = Worksheets("Sheet5").Range("A2:B8")
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations