Hur fyller jag i en textruta automatiskt när du skriver i Excel?
Som standard kan Excel komma ihåg vad du har angett i celler i det aktuella kalkylbladet och autofullföra detta innehåll nästa gång när du skriver en relaterad initial bokstav i en ny cell. Men om du vill att allt innehåll som du har angett i kalkylbladet ska fyllas i automatiskt i en textruta (ActiveX Control), hur kan du göra det? Den här artikeln ger en VBA-metod som hjälper dig att automatiskt fylla i en textruta när du skriver en första bokstav inuti.
Komplettera automatiskt en textruta när du skriver med VBA-kod
- Återanvänd allt: Lägg till de mest använda eller komplexa formlerna, diagrammen och allt annat till dina favoriter och återanvänd dem snabbt i framtiden.
- Mer än 20 textfunktioner: Extrahera nummer från textsträng; Extrahera eller ta bort en del av texterna; Konvertera siffror och valutor till engelska ord.
- Sammanfoga verktyg: Flera arbetsböcker och ark till en; Slå ihop flera celler / rader / kolumner utan att förlora data; Slå samman duplicerade rader och summa.
- Dela verktyg: Dela data i flera ark baserat på värde; En arbetsbok för flera Excel-, PDF- eller CSV-filer; En kolumn till flera kolumner.
- Klistra över Dolda / filtrerade rader; Räkna och summa av bakgrundsfärg; Skicka personliga e-postmeddelanden till flera mottagare i bulk.
- Superfilter: Skapa avancerade filterscheman och tillämpas på alla ark; Svart per vecka, dag, frekvens och mer; Filter med fetstil, formler, kommentarer ...
- Mer än 300 kraftfulla funktioner; Fungerar med Office 2007-2019 och 365; Stöder alla språk; Enkel distribution i ditt företag eller organisation.
Komplettera automatiskt en textruta när du skriver med VBA-kod

Gör så här för att göra en textruta autofullständig när du skriver en första bokstav i textrutan.
1. Infoga en textruta genom att klicka Utvecklare > Insert > Textruta (ActiveX-kontroll). Se skärmdump:
2. Och klicka sedan på Utvecklare > Insert > Listbox (ActiveX Control) för att infoga en listruta i det aktuella kalkylbladet. Se skärmdump:
3. Högerklicka på arkfliken och klicka sedan på Visa kod från snabbmenyn som visas nedan.
4. I Microsoft Visual Basic för applikationer kopiera och klistra in nedanför VBA-koden i kodfönstret. Och klicka sedan på verktyg > referenser, och kontrollera sedan Microsoft Scripting Runtime ruta i Referenser - VBAProject dialog ruta. Se skärmdump:
VBA-kod: Komplettera en textruta automatiskt när du skriver
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
Anmärkningar: I koden, ListBox1 och Textlåda1 är namnet på listrutan och textrutan du har infogat i ditt kalkylblad.
5. tryck på andra + Q för att avsluta Microsoft Visual Basic för applikationer fönster.
6. Stäng av designläget genom att klicka på Utvecklare > Designläge i kalkylbladet.
7. Byt nu till ett annat kalkylblad och gå sedan tillbaka till föregående kalkylblad för att aktivera VBA-koden.
Från och med nu. När du skriver in en första bokstav i textrutan kommer alla texter som börjar med den bokstaven du har skrivit in i kalkylbladet listade i listrutan som finns till höger om textrutan. Dubbelklicka på den du behöver för att ange den i textrutan. Se skärmdump:
Anmärkningar: Du kan använda Up or Ner piltangenten för att flytta bland alla autoslutförda texter i listrutan och tryck sedan på ange för att ange behövs en i textrutan.
Relaterade artiklar:
- Hur markerar jag text i en textruta automatiskt när den väljs i Excel?
- Hur rensar man innehållet i textrutan när man klickar i Excel?
- Hur sammanfoga texter från flera celler till en textruta i Excel?
- Hur inaktiverar du redigering i textrutan för att förhindra användarens inmatning i Excel?
- Hur formaterar jag en textruta i procent i Excel?
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.

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!
