Przejdź do głównej zawartości

Jak wypełnić pole tekstowe na podstawie wyboru combobox w UserForm w programie Excel?

Przypuśćmy, że masz tabelę zawierającą nazwę i kolumnę z numerem personelu, jak pokazano poniżej. Teraz musisz utworzyć formularz użytkownika osadzony w polu kombi, które gromadzi wszystkie nazwiska w środku i pole tekstowe, które zapełni odpowiedni numer personelu podczas wybierania nazwiska z pola kombi. Metoda opisana w tym artykule może Ci pomóc.

Wypełnij pole tekstowe na podstawie wyboru combobox w formularzu użytkownika z VBA


Wypełnij pole tekstowe na podstawie wyboru combobox w formularzu użytkownika z VBA

Wykonaj następujące czynności, aby wypełnić pole tekstowe odpowiednią wartością na podstawie wyboru pola wyboru w formularzu użytkownika.

1. wciśnij inny + F11 klawisze, aby otworzyć Microsoft Visual Basic for Applications okno.

2. w Microsoft Visual Basic for Applications okno, kliknij wstawka > Formularz użytkownika. Zobacz zrzut ekranu:

3. Następnie wstaw kontrolkę Combo box i Text box do utworzonego Userform, jak pokazano na poniższym zrzucie ekranu.

4. Kliknij prawym przyciskiem myszy dowolne puste miejsce w formularzu użytkownika, a następnie kliknij Wyświetl kod z menu kontekstowego. Zobacz zrzut ekranu:

5. W otwartym oknie Userform (Code) skopiuj i wklej poniższy kod VBA, aby zastąpić oryginał.

Kod VBA: Wypełnij pole tekstowe na podstawie wyboru combobox w 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: W kodzie A2:B2 to zakres zawierający wartości, które należy wypełnić oddzielnie zarówno w polu kombi Formularz użytkownika, jak i w polu tekstowym. Arkusz5 to nazwa arkusza zawierającego zakres danych. Zmień je według potrzeb.

6. wciśnij inny + Q klawisze, aby wyjść z Microsoft Visual Basic for Applications okno.

7. kliknij Deweloper > wstawka > Przycisk polecenia (formant ActiveX) aby wstawić przycisk polecenia do arkusza.

8. Kliknij prawym przyciskiem myszy kartę arkusza i wybierz Wyświetl kod z menu wyświetlanego prawym przyciskiem myszy. Następnie skopiuj i wklej kod VBA do okna kodu.

Kod VBA: Pokaż formularz użytkownika

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

9. Wyłącz tryb projektowania w skoroszycie.

Kliknij przycisk polecenia, aby otworzyć określony formularz użytkownika. Następnie zobaczysz, że wszystkie nazwy są zebrane w polu kombi. Po wybraniu nazwy z pola kombi odpowiedni numer personelu zostanie automatycznie wpisany do pola tekstowego, jak pokazano na zrzucie ekranu.


Podobne artykuły:

Najlepsze narzędzia biurowe

🤖 Pomocnik AI Kutools: Zrewolucjonizuj analizę danych w oparciu o: Inteligentne wykonanie   |  Wygeneruj kod  |  Twórz niestandardowe formuły  |  Analizuj dane i generuj wykresy  |  Wywołaj funkcje Kutools...
Popularne funkcje: Znajdź, wyróżnij lub zidentyfikuj duplikaty   |  Usuń puste wiersze   |  Łącz kolumny lub komórki bez utraty danych   |   Okrągły bez wzoru ...
Super wyszukiwanie: Wiele kryteriów VLookup    Wiele wartości VLookup  |   Przeglądanie pionowe na wielu arkuszach   |   Wyszukiwanie rozmyte ....
Zaawansowana lista rozwijana: Szybko twórz listę rozwijaną   |  Zależna lista rozwijana   |  Lista rozwijana wielokrotnego wyboru ....
Menedżer kolumn: Dodaj określoną liczbę kolumn  |  Przesuń kolumny  |  Przełącz stan widoczności ukrytych kolumn  |  Porównaj zakresy i kolumny ...
Polecane funkcje: Fokus siatki   |  Widok projektu   |   Duży pasek formuły    Menedżer skoroszytów i arkuszy   |  Biblioteka zasobów (Automatyczny tekst)   |  Selektor dat   |  Połącz arkusze   |  Szyfruj/odszyfruj komórki    Wysyłaj e-maile według listy   |  Super filtr   |   Specjalny filtr (filtruj pogrubienie/kursywa/przekreślenie...) ...
15 najlepszych zestawów narzędzi12 Tekst Tools (Dodaj tekst, Usuń znaki, ...)   |   50 + Wykres rodzaje (Wykres Gantta, ...)   |   40+ Praktyczne Wzory (Oblicz wiek na podstawie urodzin, ...)   |   19 Wprowadzenie Tools (Wstaw kod QR, Wstaw obraz ze ścieżki, ...)   |   12 Konwersja Tools (Liczby na słowa, Przeliczanie walut, ...)   |   7 Połącz i podziel Tools (Zaawansowane wiersze łączenia, Podział komórki, ...)   |   ... i więcej

Zwiększ swoje umiejętności Excela dzięki Kutools for Excel i doświadcz wydajności jak nigdy dotąd. Kutools dla programu Excel oferuje ponad 300 zaawansowanych funkcji zwiększających produktywność i oszczędzających czas.  Kliknij tutaj, aby uzyskać funkcję, której najbardziej potrzebujesz...

Opis


Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
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