Note: The other languages of the website are Google-translated. Back to English
Logga in  \/ 
x
or
x
Registrera  \/ 
x

or

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 som du fyller i separat i både kombinationsrutan Användarform och textrutan. Och Sheet5 är namnet på kalkylbladet som innehåller dataområdet. Ä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ögerklickmenyn. Kopiera och klistra sedan in VBA-kod 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 samlas i kombinationsrutan. När du väljer ett namn från kombinationsrutan fylls motsvarande personalnummer automatiskt i textrutan enligt nedanstående skärmdump.


Relaterade artiklar:


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2019 och 365. Stöder alla språk. Enkel distribution i ditt företag eller organisation. Fullständiga funktioner 30-dagars gratis provperiod. 60-dagars pengarna tillbaka-garanti.
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 åt dig varje dag!
officetab botten
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 · 3 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")