Jak automaticky vyplnit textové pole při psaní v aplikaci Excel?
Ve výchozím nastavení si Excel pamatuje, co jste zadali do buněk aktuálního listu, a tento obsah příště automaticky doplní při zadávání souvisejícího počátečního písmene do nové buňky. Pokud však chcete, aby se veškerý obsah, který jste zadali v listu, automaticky doplňoval v textovém poli (ovládací prvek ActiveX), jak byste to mohli udělat? Tento článek poskytne metodu VBA, která vám pomůže automaticky dokončit textové pole při zadávání počátečního písmene uvnitř.
Automatické vyplňování textového pole při psaní pomocí kódu VBA
- Znovu použít cokoli: Přidejte do svých oblíbených nejpoužívanější nebo nejsložitější vzorce, grafy a cokoli jiného a rychle je v budoucnu znovu použijte.
- Více než 20 textových funkcí: Extrahovat číslo z textového řetězce; Extrahovat nebo odebrat část textů; Převádějte čísla a měny na anglická slova.
- Sloučit nástroje: Více sešitů a listů do jednoho; Sloučit více buněk / řádků / sloupců bez ztráty dat; Sloučit duplicitní řádky a součet.
- Rozdělené nástroje: Rozdělit data do více listů na základě hodnoty; Jeden sešit pro více souborů Excel, PDF nebo CSV; Jeden sloupec na více sloupců.
- Vložit přeskakování Skryté / filtrované řádky; Count And Sum podle barvy pozadí; Posílejte hromadně osobní e-maily více příjemcům.
- Super filtr: Vytvořte pokročilá schémata filtrů a použijte je na jakékoli listy; Typ podle týdne, dne, frekvence a dalších; Filtr tučně, vzorce, komentovat ...
- Více než 300 výkonných funkcí; Funguje s Office 2007-2019 a 365; Podporuje všechny jazyky; Snadné nasazení ve vašem podniku nebo organizaci.
Automatické vyplňování textového pole při psaní pomocí kódu VBA

Chcete-li při psaní počátečního písmene uvnitř textového pole provést automatické doplňování textového pole, postupujte následovně.
1. Vložte prosím textové pole kliknutím Vývojka > Vložit > Textové pole (ovládací prvek ActiveX). Viz snímek obrazovky:
2. A potom klikněte Vývojka > Vložit > Seznam (ovládací prvek ActiveX) pro vložení seznamu do aktuálního listu. Viz snímek obrazovky:
3. Klepněte pravým tlačítkem na kartu listu a potom klepněte na Zobrazit kód z kontextové nabídky, jak je uvedeno níže.
4. V Microsoft Visual Basic pro aplikace zkopírujte a vložte pod kód VBA do okna Kód. A pak klikněte Nástroje > Reference, a potom zkontrolujte Microsoft Scripting Runtime pole v Reference - VBAProject dialogové okno. Viz snímek obrazovky:
Kód VBA: Automatické vyplňování textového pole při psaní
Dim xRg As Range Dim xDic As New Dictionary Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) Me.TextBox1.Value = Me.ListBox1.Value End Sub Private Sub Worksheet_Change(ByVal Target As Range) Dim xVal As String On Error Resume Next If IsNumeric(Target.Value) Then xVal = Str(Target.Value) Else xVal = Target.Value End If If xVal <> "" Then If Not xDic.Exists(xVal) Then xDic.Add xVal, xVal End If End If End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Me.ListBox1.Visible = False End Sub Private Sub Worksheet_Activate() Dim I As Long Dim xStr As String On Error Resume Next If xRg Is Nothing Then Set xRg = ActiveSheet.UsedRange End If Me.ListBox1.Visible = False xDic.RemoveAll With Me.ListBox1 For I = 1 To xRg.Count xStr = xRg(I).Value If xStr <> "" Then .AddItem xStr If Not xDic.Exists(xStr) Then xDic.Add xStr, xStr End If End If Next End With End Sub Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) With Me.ListBox1 .Top = Me.TextBox1.Top .Left = Me.TextBox1.Left + Me.TextBox1.Width .Width = Me.TextBox1.Width End With TextBoxVal Me.TextBox1.Object End Sub Sub TextBoxVal(xTextBox As Variant) Dim I As Long Dim xStr As String On Error Resume Next Application.ScreenUpdating = False If xRg Is Nothing Then Exit Sub Me.ListBox1.Clear xStr = xTextBox.Value If xStr = "" Then Me.ListBox1.Visible = False Application.EnableEvents = True Exit Sub End If For I = 0 To UBound(xDic.Items) If Left(xDic.Items(I), Len(xStr)) = xStr Then Me.ListBox1.AddItem xDic.Items(I) End If Next Me.ListBox1.Visible = True If Me.ListBox1.ListCount > 0 Then With xTextBox .Value = Me.ListBox1.List(0) .SelStart = Len(xStr) .SelLength = Len(Me.ListBox1.List(0)) End With End If Me.ListBox1.Activate Me.ListBox1.Selected(0) = True Application.ScreenUpdating = True End Sub Private Sub ListBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 13 Then Me.TextBox1.Value = Me.ListBox1.Value End If End Sub
Poznámka: V kódu, ListBox1 a Textové pole 1 jsou název seznamu a textového pole, které jste vložili do svého listu.
5. zmáčkni Další + Q klávesy pro opuštění Microsoft Visual Basic pro aplikace okno.
6. Vypněte návrhový režim kliknutím Vývojka > Režim návrhu v listu.
7. Nyní přejděte na jiný list a poté se vraťte na předchozí list a povolte kód VBA.
Od teď. Při zadávání počátečního písmene do textového pole budou všechny texty začínající daným písmenem, které jste zadali do listu, uvedeny v seznamu, který se nachází na pravé straně textového pole. Poklepejte prosím na ten, který potřebujete, a zadejte jej do textového pole. Viz snímek obrazovky:
Poznámka: Můžete použít Up or Dolů klávesou se šipkou se pohybujte mezi všemi texty automatického dokončování v seznamu a poté stiskněte vstoupit tlačítko pro zadání potřebného do textového pole.
Související články:
- Jak automaticky vybrat text textového pole, když je vybrán v aplikaci Excel?
- Jak vymazat obsah textového pole po kliknutí v aplikaci Excel?
- Jak zřetězit texty více buněk do textového pole v aplikaci Excel?
- Jak zakázat úpravy v textovém poli, aby se zabránilo vstupu uživatele do aplikace Excel?
- Jak formátovat textové pole jako procento v aplikaci Excel?
Nejlepší kancelářské nástroje produktivity
Kutools pro Excel řeší většinu vašich problémů a zvyšuje vaši produktivitu o 80%
- Opakované použití: Rychle vložte složité vzorce, grafy a cokoli, co jste dříve používali; Šifrovat buňky s heslem; Vytvořte seznam adresátů a posílat e-maily ...
- Super Formula Bar (snadno upravit více řádků textu a vzorce); Rozložení pro čtení (snadno číst a upravovat velké množství buněk); Vložit do filtrovaného rozsahu...
- Sloučit buňky / řádky / sloupce bez ztráty dat; Rozdělit obsah buněk; Zkombinujte duplicitní řádky / sloupce... Zabraňte duplicitním buňkám; Porovnat rozsahy...
- Vyberte možnost Duplikovat nebo Jedinečný Řádky; Vyberte prázdné řádky (všechny buňky jsou prázdné); Super hledání a fuzzy hledání v mnoha sešitech; Náhodný výběr ...
- Přesná kopie Více buněk beze změny odkazu na vzorec; Automaticky vytvářet reference do více listů; Vložte odrážky, Zaškrtávací políčka a další ...
- Extrahujte text, Přidat text, Odebrat podle pozice, Odebrat mezeru; Vytváření a tisk mezisoučtů stránkování; Převod mezi obsahem buněk a komentáři...
- Super filtr (uložit a použít schémata filtrů na jiné listy); Rozšířené řazení podle měsíce / týdne / dne, frekvence a dalších; Speciální filtr tučnou kurzívou ...
- Kombinujte sešity a pracovní listy; Sloučit tabulky na základě klíčových sloupců; Rozdělte data do více listů; Dávkový převod xls, xlsx a PDF...
- Více než 300 výkonných funkcí. Podporuje Office / Excel 2007-2019 a 365. Podporuje všechny jazyky. Snadné nasazení ve vašem podniku nebo organizaci. Kompletní funkce 30denní bezplatná zkušební verze. 60denní záruka vrácení peněz.

Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci
- Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
- Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
- Zvyšuje vaši produktivitu o 50% a omezuje stovky kliknutí myší každý den!
