Note: The other languages of the website are Google-translated. Back to English
Σύνδεση  \/ 
x
or
x
Εγγραφή  \/ 
x

or

Πώς να συμπληρώσετε το πλαίσιο κειμένου με βάση την επιλογή 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. Απενεργοποιήστε τη Λειτουργία σχεδίασης στο βιβλίο εργασίας.

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


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


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

Το Kutools για Excel λύνει τα περισσότερα από τα προβλήματά σας και αυξάνει την παραγωγικότητά σας κατά 80%

  • Επαναχρησιμοποίηση: Εισαγάγετε γρήγορα σύνθετοι τύποι, γραφήματα και οτιδήποτε έχετε χρησιμοποιήσει στο παρελθόν. Κρυπτογράφηση κυττάρων με κωδικό πρόσβασης Δημιουργία λίστας αλληλογραφίας και στείλτε email ...
  • Super Formula Bar (επεξεργαστείτε εύκολα πολλές γραμμές κειμένου και τύπου). Διάταξη ανάγνωσης (εύκολη ανάγνωση και επεξεργασία μεγάλου αριθμού κελιών). Επικόλληση σε φιλτραρισμένο εύρος...
  • Συγχώνευση κελιών / σειρών / στηλών χωρίς απώλεια δεδομένων · Περιεχόμενο διαχωρισμού κελιών Συνδυάστε διπλές σειρές / στήλες... Αποτροπή διπλών κυττάρων; Συγκρίνετε τα εύρη...
  • Επιλέξτε Διπλότυπο ή Μοναδικό Σειρές; Επιλέξτε Κενές σειρές (όλα τα κελιά είναι κενά). Σούπερ εύρεση και ασαφής εύρεση σε πολλά βιβλία εργασίας. Τυχαία επιλογή ...
  • Ακριβές αντίγραφο Πολλαπλά κελιά χωρίς αλλαγή της αναφοράς τύπου. Αυτόματη δημιουργία αναφορών σε πολλαπλά φύλλα? Εισαγωγή κουκκίδων, Πλαίσια ελέγχου και άλλα ...
  • Εξαγωγή κειμένου, Προσθήκη κειμένου, Κατάργηση κατά θέση, Αφαιρέστε το διάστημα; Δημιουργία και εκτύπωση υποσύνολων σελιδοποίησης. Μετατροπή περιεχομένου και σχολίων μεταξύ κελιών...
  • Σούπερ φίλτρο (αποθηκεύστε και εφαρμόστε σχήματα φίλτρων σε άλλα φύλλα). Προηγμένη ταξινόμηση ανά μήνα / εβδομάδα / ημέρα, συχνότητα και άλλα. Ειδικό φίλτρο με έντονη, πλάγια ...
  • Συνδυάστε βιβλία εργασίας και φύλλα εργασίας; Συγχώνευση πινάκων βάσει βασικών στηλών. Διαχωρίστε τα δεδομένα σε πολλά φύλλα; Μαζική μετατροπή xls, xlsx και PDF...
  • Περισσότερα από 300 ισχυρά χαρακτηριστικά. Υποστηρίζει Office / Excel 2007-2019 και 365. Υποστηρίζει όλες τις γλώσσες. Εύκολη ανάπτυξη στην επιχείρηση ή τον οργανισμό σας. Πλήρεις δυνατότητες δωρεάν δοκιμής 30 ημερών. Εγγύηση επιστροφής χρημάτων 60 ημερών.
kte καρτέλα 201905

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

  • Ενεργοποίηση επεξεργασίας και ανάγνωσης καρτελών σε Word, Excel, PowerPoint, Publisher, Access, Visio και Project.
  • Ανοίξτε και δημιουργήστε πολλά έγγραφα σε νέες καρτέλες του ίδιου παραθύρου και όχι σε νέα παράθυρα.
  • Αυξάνει την παραγωγικότητά σας κατά 50% και μειώνει εκατοντάδες κλικ ποντικιού για εσάς κάθε μέρα!
κάτω μέρος γραφείου
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Everton · 1 years ago
    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
  • To post as a guest, your comment is unpublished.
    carey.ogola@gmail.com · 3 years ago
    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.
    • To post as a guest, your comment is unpublished.
      Carla Cox · 1 years ago
      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
    • To post as a guest, your comment is unpublished.
      crystal · 2 years ago
      Hi,
      May I have your Office version? I need the feedback to check for the error.
      Thanks for your comment.
      • To post as a guest, your comment is unpublished.
        hoa tran · 2 years ago
        office 2010 32 bit
        • To post as a guest, your comment is unpublished.
          crystal · 2 years ago
          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.
          • To post as a guest, your comment is unpublished.
            Dimal · 2 years ago
            Hi,
            i have same issue with office 2013. Any solution please
            • To post as a guest, your comment is unpublished.
              Olban Noe Izaguirre · 2 years ago
              i have the same problem....
              • To post as a guest, your comment is unpublished.
                Chaylon · 2 years ago
                I too have the same problem
                • To post as a guest, your comment is unpublished.
                  crystal · 2 years ago
                  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")