Hvordan udfyldes en tekstboks automatisk, når du skriver i Excel?
Som standard kan Excel huske, hvad du har indtastet i cellerne i det aktuelle regneark og udfylde dette indhold automatisk næste gang, når du skriver et beslægtet første bogstav i en ny celle. Men hvis du vil gøre alt indhold, du har indtastet i regnearket, autofuldført i en tekstboks (ActiveX Control), hvordan kunne du gøre det? Denne artikel vil give en VBA-metode, der hjælper dig med at autofuldføre en tekstboks, når du skriver et første bogstav inde.
Autofuldfør en tekstboks, når du skriver med VBA-kode
- Genbrug alt: Tilføj de mest anvendte eller komplekse formler, diagrammer og alt andet til dine favoritter, og genbrug dem hurtigt i fremtiden.
- Mere end 20 tekstfunktioner: Uddrag nummer fra tekststreng; Uddrag eller fjern en del af teksterne; Konverter tal og valutaer til engelske ord.
- Flet værktøjer: Flere arbejdsbøger og ark til én; Flet flere celler / rækker / kolonner uden at miste data; Flet duplikatrækker og sum.
- Opdel værktøjer: Opdel data i flere ark baseret på værdi; Én projektmappe til flere Excel-, PDF- eller CSV-filer; En kolonne til flere kolonner.
- Indsæt spring Skjulte / filtrerede rækker; Tæl og sum af baggrundsfarve; Send personaliserede e-mails til flere modtagere i bulk.
- Superfilter: Opret avancerede filterskemaer og anvend dem på alle ark; Sort efter uge, dag, hyppighed og mere; filtre med fed, formler, kommentar ...
- Mere end 300 kraftfulde funktioner; Arbejder med Office 2007-2021 og 365; Understøtter alle sprog; Nem implementering i din virksomhed eller organisation.
Autofuldfør en tekstboks, når du skriver med VBA-kode
Gør som følger for at gøre en tekstboks autofuldførelse, når du skriver et første bogstav inde i tekstboksen.
1. Indsæt en tekstboks ved at klikke Udvikler > indsatte > Tekstboks (ActiveX-kontrol). Se skærmbillede:
2. Klik derefter på Udvikler > indsatte > Listeboks (ActiveX-kontrol) for at indsætte en liste i det aktuelle regneark. Se skærmbillede:
3. Højreklik på arkfanen, og klik derefter på Vis kode fra kontekstmenuen som vist nedenstående skærmbillede.
4. i Microsoft Visual Basic til applikationer vindue, skal du kopiere og indsætte under VBA-kode i kodevinduet. Og klik derefter på Værktøj > Referencer, og tjek derefter Microsoft Scripting Runtime boks i Referencer - VBAProject dialog boks. Se skærmbillede:
VBA-kode: Autofuldfør en tekstboks, 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
Bemærk: I koden, ListBox1 og Tekstboks 1 er navnet på den listeboks og tekstboks, du har indsat i dit regneark.
5. Tryk på andre + Q taster for at afslutte Microsoft Visual Basic til applikationer vindue.
6. Sluk for designtilstand ved at klikke på Udvikler > Design Mode i regnearket.
7. Skift nu til et andet regneark, og gå derefter tilbage til det forrige regneark for at aktivere VBA-koden.
Fra nu af. Når du indtaster et indledende bogstav i tekstboksen, vises alle tekster, der begynder med det bogstav, du har indtastet i regnearket, inde i listeboksen, som findes i højre side af tekstboksen. Dobbeltklik på den ønskede for at indtaste den i tekstboksen. Se skærmbillede:
Bemærk: Du kan bruge Up or ned piletast for at skifte mellem alle autofuldførte tekster i listeboksen, og tryk derefter på Indtast nøgle for at indtaste brug for en i tekstboksen.
Relaterede artikler:
- Hvordan vælges tekst automatisk i en tekstboks, når den er valgt i Excel?
- Hvordan ryddes indholdet af tekstboksen, når der klikkes på i Excel?
- Hvordan sammenkædes tekster fra flere celler i en tekstboks i Excel?
- Hvordan deaktiveres redigering i tekstboks for at forhindre brugerinput i Excel?
- Hvordan formateres en tekstboks i procent i Excel?
De bedste Office-produktivitetsværktøjer
Kutools til Excel løser de fleste af dine problemer og øger din produktivitet med 80%
- Genbruge: Indsæt hurtigt komplekse formler, diagrammer og alt, hvad du har brugt før; Krypter celler med adgangskode Opret postliste og send e-mails ...
- Super formel bar (let redigere flere linjer med tekst og formel); Læsning Layout (let at læse og redigere et stort antal celler); Indsæt til filtreret rækkevidde...
- Flet celler / rækker / kolonner uden at miste data; Split celler indhold; Kombiner duplikerede rækker / kolonner... Forhindre duplikerede celler; Sammenlign områder...
- Vælg Duplicate eller Unique Rækker; Vælg tomme rækker (alle celler er tomme); Super Find og Fuzzy Find i mange arbejdsbøger; Tilfældig valg ...
- Præcis kopi Flere celler uden at ændre formelreference; Auto Opret referencer til flere ark; Indsæt kugler, Afkrydsningsfelter og mere ...
- Uddrag tekst, Tilføj tekst, Fjern efter position, Fjern mellemrum; Opret og udskriv personsøgningssubtotaler; Konverter mellem celler indhold og kommentarer...
- Superfilter (gem og anvend filterskemaer på andre ark); Avanceret sortering efter måned / uge / dag, hyppighed og mere; Specielt filter af fed, kursiv ...
- Kombiner arbejdsbøger og arbejdsark; Fletabeller baseret på nøglekolonner; Opdel data i flere ark; Batch Konverter xls, xlsx og PDF...
- Mere end 300 kraftfulde funktioner. Understøtter Office / Excel 2007-2021 og 365. Understøtter alle sprog. Nem implementering i din virksomhed eller organisation. Fuld funktioner 30-dages gratis prøveperiode. 60 dages pengene tilbage garanti.

Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere
- Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
- Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
- Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!
