Hoppa till huvudinnehåll

Hur fyller jag i textruta baserat på valet av kombinationsrutor på UserForm i Excel?

Om du antar att du har en tabell innehåller kolumnen Namn och personalnummer enligt nedanstående skärmdump. Nu måste du skapa ett användarformulär inbäddat med en kombinationsruta som samlar alla namn inuti och en textruta som fyller motsvarande personalnummer när du väljer namn från kombinationsrutan. Metoden i den här artikeln kan hjälpa dig att få ner den.

Fyll i textrutan baserat på valet av kombinationsrutor i Userform med VBA


Fyll i textrutan baserat på valet av kombinationsrutor i Userform med VBA

Gör så här för att fylla i textrutan med motsvarande värde baserat på valet av kombinationsruta i användarformuläret.

1. tryck på andra + F11 nycklar för att öppna Microsoft Visual Basic för applikationer fönster.

2. I Microsoft Visual Basic för applikationer fönstret klickar Insert > Användarformulär. Se skärmdump:

3. Sätt sedan in en kombinationsruta och en textruta i det skapade användarformuläret som visas nedan.

4. Högerklicka på ett tomt utrymme i användarformuläret och klicka sedan på Visa kod från snabbmenyn. Se skärmdump:

5. I fönstret Öppna användarformulär (kod), vänligen kopiera och klistra in nedanstående VBA-kod för att ersätta originalet.

VBA-kod: Fyll i textrutan baserat på valet av kombinationsrutor i användarformuläret

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

Anmärkningar: I koden är A2:B2 intervallet som innehåller de värden du kommer att fylla i separat i både Userform-kombinationsrutan och textrutan. Och Sheet5 är namnet på kalkylbladet som innehåller dataintervallet. Vänligen ändra dem efter behov.

6. tryck på andra + Q för att avsluta Microsoft Visual Basic för applikationer fönster.

7. klick Utvecklare > Insert > Kommandoknapp (ActiveX-kontroll) för att infoga en kommandoknapp i kalkylbladet.

8. Högerklicka på arkfliken och välj Visa kod från högerklicksmenyn. Kopiera sedan och klistra in VBA-koden i kodfönstret.

VBA-kod: Visa användarformulär

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

9. Stäng av designläget i arbetsboken.

Klicka på kommandoknappen för att öppna det angivna användarformuläret. Då kan du se att alla namn är samlade i kombinationsrutan. När du väljer ett namn från kombinationsrutan, kommer motsvarande personalnummer att fyllas i i textrutan automatiskt enligt skärmbilden nedan.


Relaterade artiklar:

Bästa kontorsproduktivitetsverktyg

Populära funktioner: Hitta, markera eller identifiera dubbletter   |  Ta bort tomma rader   |  Kombinera kolumner eller celler utan att förlora data   |   Rund utan formel ...
Superuppslag: Flera kriterier VLookup    VLookup med flera värden  |   VSök över flera ark   |   Fuzzy Lookup ....
Avancerad rullgardinslista: Skapa snabbt en rullgardinslista   |  Beroende rullgardinslista   |  Flervals-rullgardinslista ....
Kolumnhanterare: Lägg till ett specifikt antal kolumner  |  Flytta kolumner  |  Växla synlighetsstatus för dolda kolumner  |  Jämför intervall och kolumner ...
Utvalda funktioner: Rutnätsfokus   |  Designvy   |   Stor formelbar    Arbetsbok & Bladhanterare   |  Resursbibliotek (Automatisk text)   |  Datumväljare   |  Kombinera arbetsblad   |  Kryptera/Dekryptera celler    Skicka e-postmeddelanden efter lista   |  Superfilter   |   Specialfilter (filtrera fet/kursiv/genomstruken...) ...
Topp 15 verktygssatser12 text verktyg (lägga till text, Ta bort tecken, ...)   |   50 + Diagram Typer (Gantt Chart, ...)   |   40+ Praktiskt Formler (Beräkna ålder baserat på födelsedag, ...)   |   19 Införande verktyg (Infoga QR-kod, Infoga bild från sökväg, ...)   |   12 Konvertering verktyg (Siffror till ord, Valutaväxling, ...)   |   7 Slå ihop och dela verktyg (Avancerade kombinera rader, Dela celler, ...)   |   ... och mer

Uppgradera dina Excel-färdigheter med Kutools för Excel och upplev effektivitet som aldrig förr. Kutools för Excel erbjuder över 300 avancerade funktioner för att öka produktiviteten och spara tid.  Klicka här för att få den funktion du behöver mest...

kte-flik 201905


Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
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