Zum Hauptinhalt springen

Kutools für Office — Eine Suite. Fünf Tools. Erledigen Sie mehr.

Wie kann man eine Textbox automatisch vervollständigen, während man in Excel tippt?

Author Siluvia Last modified

Standardmäßig kann Excel sich daran erinnern, was Sie in Zellen des aktuellen Arbeitsblatts eingegeben haben, und diesen Inhalt beim nächsten Mal automatisch vervollständigen, wenn Sie einen zugehörigen Anfangsbuchstaben in eine neue Zelle eingeben. Wenn Sie jedoch möchten, dass alle Inhalte, die Sie im Arbeitsblatt eingegeben haben, in einer Textbox (ActiveX-Steuerelement) automatisch vervollständigt werden, wie könnten Sie das tun? Dieser Artikel bietet eine VBA-Methode, um Ihnen zu helfen, eine Textbox automatisch zu vervollständigen, wenn Sie einen Anfangsbuchstaben eingeben.

Textbox mit VBA-Code automatisch vervollständigen


Textbox mit VBA-Code automatisch vervollständigen

Bitte gehen Sie wie folgt vor, um eine Textbox automatisch zu vervollständigen, wenn Sie einen Anfangsbuchstaben in die Textbox eingeben.

1. Bitte fügen Sie eine Textbox ein, indem Sie auf Entwickler > Einfügen > Textfeld (ActiveX-Steuerelement) klicken. Siehe Screenshot:

click to insert Text Box

2. Klicken Sie dann auf Entwickler > Einfügen > Listenfeld (ActiveX-Steuerelement), um ein Listenfeld in das aktuelle Arbeitsblatt einzufügen. Siehe Screenshot:

click to insert List Box

3. Klicken Sie mit der rechten Maustaste auf die Blattregisterkarte und dann im Kontextmenü auf Code anzeigen, wie im folgenden Screenshot gezeigt.

click View Code from right click menu

4. Kopieren Sie im Fenster Microsoft Visual Basic for Applications den folgenden VBA-Code und fügen Sie ihn in das Codefenster ein. Klicken Sie dann auf Extras > Verweise und aktivieren Sie das Kontrollkästchen Microsoft Scripting Runtime im Dialogfeld Verweise – VBAProject. Siehe Screenshot:

VBA-Code: Textbox beim Tippen automatisch vervollständigen

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

go to References dialog box and check Microsoft Scripting Runtime

Hinweis: Im Code sind ListBox1 und Textbox1 die Namen des Listenfelds und der Textbox, die Sie in Ihr Arbeitsblatt eingefügt haben.

5. Drücken Sie die Tasten Alt + Q, um das Fenster Microsoft Visual Basic for Applications zu schließen.

6. Schalten Sie den Entwurfsmodus aus, indem Sie auf Entwickler > Entwurfsmodus im Arbeitsblatt klicken.

7. Wechseln Sie nun zu einem anderen Arbeitsblatt und kehren Sie dann zum vorherigen Arbeitsblatt zurück, um den VBA-Code zu aktivieren.

Ab jetzt. Wenn Sie einen Anfangsbuchstaben in die Textbox eingeben, werden alle Texte, die mit diesem Buchstaben beginnen, den Sie in das Arbeitsblatt eingegeben haben, in der Liste rechts neben der Textbox aufgelistet. Doppelklicken Sie auf den gewünschten Eintrag, um ihn in die Textbox einzufügen. Siehe Screenshot:

When entering an initial letter into the textbox, all texts which begin with that letter will be listed

Hinweis: Sie können die Pfeiltasten nach oben oder unten verwenden, um zwischen allen automatisch vervollständigten Texten in der Liste zu navigieren, und dann die Eingabetaste drücken, um den gewünschten Eintrag in die Textbox einzufügen.



Verwandte Artikel:

Die besten Produktivitätstools für das Büro

🤖 Kutools AI Assistent: Revolutionieren Sie die Datenanalyse basierend auf: Intelligente Ausführung |  Code generieren  |  Benutzerdefinierte Formeln erstellen |  Daten analysieren und Diagramme generieren  |  Erweiterte Funktionen aufrufen
Beliebte Funktionen: Doppelte suchen, hervorheben oder markieren | Leere Zeilen löschen | Spalten oder Zellen zusammenführen, ohne Daten zu verlieren | Runden...
Erweiterte SVERWEIS: SVERWEIS mit mehreren Kriterien | SVERWEIS für mehrere Werte | Mehrblatt-SVERWEIS | Fuzzy Match...
Erweiterte Dropdown-Liste: Dropdown-Liste schnell erstellen | Abhängige Dropdown-Liste | Mehrfachauswahl Dropdown-Liste...
Spaltenmanager: Eine bestimmte Anzahl an Spalten hinzufügen | Spalten verschieben | Sichtbarkeitsstatus versteckter Spalten umschalten | Bereiche & Spalten vergleichen...
Empfohlene Funktionen: Gitterfokus | Entwurfsansicht | Erweiterte Formelleiste | Arbeitsmappe & Arbeitsblatt-Manager | AutoText-Bibliothek | Datumsauswahl | Daten zusammenführen | Zellen verschlüsseln/entschlüsseln | E-Mail senden nach Liste | Super Filter | Spezialfilter (fett/kursiv/durchgestrichen filtern...) ...
Top15 Toolsets:12 Textwerkzeuge (Text hinzufügen, Bestimmte Zeichen löschen, ...) |50+ Diagramm typen (Gantt-Diagramm, ...) |40+ praktische Formeln (Alter basierend auf dem Geburtsdatum berechnen, ...) |19 Einfügewerkzeuge (QR-Code einfügen, Bild aus Pfad einfügen, ...) |12 Konvertierungswerkzeuge (In Wörter umwandeln, Währungsumrechnung, ...) |7 Konsolidierungs- & Aufteilungstools (Erweiterte Zeilen zusammenführen, Zellen aufteilen, ...) | ... und mehr
Verwenden Sie Kutools in Ihrer bevorzugten Sprache – unterstützt Englisch, Spanisch, Deutsch, Französisch, Chinesisch und über40 weitere!

Stärken Sie Ihre Excel-Fähigkeiten mit Kutools für Excel und genießen Sie Effizienz wie nie zuvor. Kutools für Excel bietet mehr als300 erweiterte Funktionen, um die Produktivität zu steigern und Zeit zu sparen. Klicken Sie hier, um die Funktion zu erhalten, die Sie am meisten benötigen...


Office Tab bringt die Tab-Oberfläche in Office und macht Ihre Arbeit wesentlich einfacher

  • Aktivieren Sie die Tabulator-Bearbeitung und das Lesen in Word, Excel, PowerPoint, Publisher, Access, Visio und Project.
  • Öffnen und erstellen Sie mehrere Dokumente in neuen Tabs innerhalb desselben Fensters, statt in neuen Einzelfenstern.
  • Steigert Ihre Produktivität um50 % und reduziert hunderte Mausklicks täglich!

Alle Kutools-Add-Ins. Ein Installationspaket

Das Kutools for Office-Paket bündelt Add-Ins für Excel, Word, Outlook & PowerPoint sowie Office Tab Pro und ist ideal für Teams, die mit mehreren Office-Anwendungen arbeiten.

Excel Word Outlook Tabs PowerPoint
  • All-in-One-Paket — Add-Ins für Excel, Word, Outlook & PowerPoint + Office Tab Pro
  • Ein Installationspaket, eine Lizenz — in wenigen Minuten einsatzbereit (MSI-kompatibel)
  • Besser gemeinsam — optimierte Produktivität in allen Office-Anwendungen
  • 30 Tage kostenlos testen — keine Registrierung, keine Kreditkarte erforderlich
  • Bestes Preis-Leistungs-Verhältnis — günstiger als Einzelkauf der Add-Ins