Ugrás a tartalomra

Hogyan töltse fel a szövegdobozt az Excel UserForm kombobox-választása alapján?

Tegyük fel, hogy van egy táblázat, amely egy név és egy személyzet oszlopot tartalmaz, az alábbi képernyőképen. Most létre kell hoznia egy Userform-ot, amely be van ágyazva egy kombinációs mezőbe, amely az összes nevet összegyűjti, és egy szövegdobozt, amely feltölti a megfelelő személyzet számát, amikor a nevet kiválasztja a kombinációs mezőből. Az ebben a cikkben szereplő módszer segíthet a lebontásban.

Töltse fel a szövegdobozt a Userform és a VBA kombinált választása alapján


Töltse fel a szövegdobozt a Userform és a VBA kombinált választása alapján

Kérjük, tegye a következőket a szövegdoboz megfelelő értékű feltöltésére a Userformon található combobox kiválasztása alapján.

1. megnyomni a más + F11 billentyűk megnyitásához Microsoft Visual Basic for Applications ablak.

2. Ban,-ben Microsoft Visual Basic for Applications ablakban kattintson betétlap > Felhasználói űrlap. Lásd a képernyőképet:

3. Ezután illesszen be egy Combo box vezérlőt és egy Text box vezérlőt a létrehozott Userformba az alábbi képernyőképen.

4. Kattintson a jobb gombbal a Userform üres helyére, majd kattintson a gombra Kód megtekintése a helyi menüből. Lásd a képernyőképet:

5. A megnyíló Userform (Code) ablakban, kérjük, másolja és illessze be az alábbi VBA kódot az eredeti helyére.

VBA-kód: Töltse fel a szövegdobozt a Userform combobox-választása alapján

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

Megjegyzések: A kódban az A2: B2 az a tartomány, amely tartalmazza azokat az értékeket, amelyeket külön kell feltölteni a Userform kombinációs mezőben és a szövegmezőben. A Sheet5 pedig az adattartományt tartalmazó munkalap neve. Kérjük, változtassa meg őket szükség szerint.

6. megnyomni a más + Q gombokkal lépjen ki a Microsoft Visual Basic for Applications ablak.

7. kettyenés Fejlesztő > betétlap > Parancs gomb (ActiveX vezérlő) hogy egy parancsgombot illesszen be a munkalapba.

8. Kattintson a jobb gombbal a lap fülre, és válassza a lehetőséget Kód megtekintése a jobb egérgombbal kattintva. Ezután másolja és illessze be a VBA kódot a kódablakba.

VBA kód: Felhasználói forma megjelenítése

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

9. Kapcsolja ki a Tervezési módot a munkafüzetben.

Kattintson a parancs gombra a megadott felhasználói űrlap megnyitásához. Ezután láthatja, hogy az összes név összegyűlik a kombinációs mezőben. Ha kiválaszt egy nevet a kombinációs mezőből, a megfelelő személyzet száma automatikusan bekerül a szövegmezőbe, az alábbi képernyőképen.


Kapcsolódó cikkek:

A legjobb irodai hatékonyságnövelő eszközök

🤖 Kutools AI Aide: Forradalmasítsa az adatelemzést a következők alapján: Intelligens végrehajtás   |  Kód létrehozása  |  Hozzon létre egyéni képleteket  |  Adatok elemzése és diagramok létrehozása  |  A Kutools funkciók meghívása...
Népszerű szolgáltatások: Ismétlődések keresése, kiemelése vagy azonosítása   |  Üres sorok törlése   |  Oszlopok vagy cellák kombinálása adatvesztés nélkül   |   Kerek Formula nélkül ...
Szuper keresés: Több kritérium VLookup    Többértékű VLookup  |   VLookup több munkalapon   |   Fuzzy Lookup ....
Speciális legördülő lista: Gyors legördülő lista létrehozása   |  Függő legördülő lista   |  Többszörösen válassza ki a legördülő listát ....
Oszlopkezelő: Adjon meg egy adott számú oszlopot  |  Oszlopok mozgatása  |  Kapcsolja be a Rejtett oszlopok láthatósági állapotát  |  Tartományok és oszlopok összehasonlítása ...
Kiemelt funkciók: Rács fókusz   |  Design nézet   |   Nagy Formula bár    Munkafüzet és lapkezelő   |  Erőforrás-könyvtár (Auto szöveg)   |  Dátumválasztó   |  Kombinálja a munkalapokat   |  Cellák titkosítása/dekódolása    E-mailek küldése listánként   |  Szuper szűrő   |   Speciális szűrő (félkövér/dőlt/áthúzott szűrés...) ...
A 15 legjobb eszközkészlet12 szöveg Eszközök (Szöveg hozzáadása, Karakterek eltávolítása,...)   |   50 + Táblázatos Típusai (Gantt-diagram,...)   |   40+ Praktikus képletek (Számolja ki az életkort a születésnap alapján,...)   |   19 beszúrás Eszközök (Helyezze be a QR-kódot, Kép beszúrása az útvonalból,...)   |   12 Átalakítás Eszközök (Számok szavakig, Valuta átváltás,...)   |   7 Egyesítés és felosztás Eszközök (Haladó kombinált sorok, Hasított sejtek,...)   |   ... és több

Töltsd fel Excel-készségeidet a Kutools for Excel segítségével, és tapasztald meg a még soha nem látott hatékonyságot. A Kutools for Excel több mint 300 speciális funkciót kínál a termelékenység fokozásához és az időmegtakarításhoz.  Kattintson ide, hogy megszerezze a leginkább szükséges funkciót...

Leírás


Az Office lap füles felületet hoz az Office-ba, és sokkal könnyebbé teszi a munkáját

  • Füles szerkesztés és olvasás engedélyezése Wordben, Excelben és PowerPointban, Publisher, Access, Visio és Project.
  • Több dokumentum megnyitása és létrehozása ugyanazon ablak új lapjain, mint új ablakokban.
  • 50% -kal növeli a termelékenységet, és naponta több száz kattintással csökkenti az egér kattintását!
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