Note: The other languages of the website are Google-translated. Back to English
Autentificare  \/ 
x
or
x
Înregistrare  \/ 
x

or

Cum să populezi caseta de text pe baza selecției combinate pe UserForm în Excel?

Presupunând că aveți un tabel conține o coloană Numele și numărul personalului, după cum se arată în imaginea de mai jos. Acum trebuie să creați un Userform încorporat cu o casetă combinată care colectează toate numele în interior și o casetă text care va completa numărul personalului corespunzător atunci când selectați numele din caseta combo. Metoda din acest articol vă poate ajuta să o descărcați.

Populați caseta de text pe baza selecției combinate pe Userform cu VBA


Populați caseta de text pe baza selecției combinate pe Userform cu VBA

Vă rugăm să procedați după cum urmează pentru a completa caseta de text cu valoarea corespunzătoare pe baza selecției combinate din formularul de utilizator.

1. apasă pe Alt + F11 tastele pentru a deschide Microsoft Visual Basic pentru aplicații fereastră.

2. În Microsoft Visual Basic pentru aplicații fereastră, faceți clic pe Insera > Formular de utilizator. Vedeți captura de ecran:

3. Apoi introduceți un control casetă Combo și un control casetă Text în Formularul de utilizator creat, așa cum este prezentat mai jos.

4. Faceți clic dreapta pe orice spațiu gol al Formei de utilizator, apoi faceți clic pe Afișați codul din meniul contextual. Vedeți captura de ecran:

5. În fereastra de deschidere Userform (Code), vă rugăm să copiați și să lipiți codul VBA de mai jos pentru a înlocui originalul.

Cod VBA: Populați caseta de text pe baza selecției combinate pe formularul de utilizator

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

notițe: În cod, A2: B2 este intervalul conține valorile pe care le veți completa separat atât în ​​caseta combo Userform, cât și în caseta de text. Și Sheet5 este numele foii de lucru conține intervalul de date. Vă rugăm să le schimbați după cum aveți nevoie.

6. apasă pe Alt + Q tastele pentru a ieși din Microsoft Visual Basic pentru aplicații fereastră.

7. clic Dezvoltator > Insera > Buton de comandă (control ActiveX) pentru a insera un buton de comandă în foaia de lucru.

8. Faceți clic dreapta pe fila foaie și selectați Afișați codul din meniul cu clic dreapta. Apoi copiați și lipiți codul VBA în fereastra de cod.

Cod VBA: Afișați forma de utilizator

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

9. Opriți modul de proiectare în registrul de lucru.

Faceți clic pe butonul de comandă pentru a deschide forma de utilizator specificată. Apoi, puteți vedea toate numele sunt colectate în caseta combinată. Când selectați un nume din caseta combinată, numărul personalului corespunzător va fi completat automat în caseta de text, așa cum este prezentat mai jos.


Legate de articole:


Cele mai bune instrumente de productivitate Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%

  • reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Peste 300 de funcții puternice. Suportă Office / Excel 2007-2019 și 365. Suportă toate limbile. Implementare ușoară în întreprindere sau organizație. Funcții complete de încercare gratuită de 30 de zile. Garanție de restituire a banilor de 60 de zile.
fila kte 201905

Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse în fiecare zi!
fundul officetab
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")