Note: The other languages of the website are Google-translated. Back to English
Einloggen  \/ 
x
or
x
Registrieren  \/ 
x

or

Wie vervollständige ich ein Textfeld beim Eingeben in Excel automatisch?

Standardmäßig kann sich Excel merken, was Sie in die Zellen des aktuellen Arbeitsblatts eingegeben haben, und diesen Inhalt beim nächsten Eingeben eines zugehörigen Anfangsbuchstabens in eine neue Zelle automatisch vervollständigen. Wenn Sie jedoch alle Inhalte, die Sie in das Arbeitsblatt eingegeben haben, in einem Textfeld (ActiveX Control) automatisch vervollständigen möchten, wie können Sie dies tun? Dieser Artikel enthält eine VBA-Methode, mit der Sie ein Textfeld automatisch vervollständigen können, wenn Sie einen Anfangsbuchstaben eingeben.

Vervollständigen Sie ein Textfeld automatisch, wenn Sie mit VBA-Code eingeben

Registerkarte "Office" Aktivieren Sie das Bearbeiten und Durchsuchen von Registerkarten in Office und vereinfachen Sie Ihre Arbeit erheblich ...
Kutools für Excel löst die meisten Ihrer Probleme und erhöht Ihre Produktivität um 80%
  • Alles wiederverwenden: Fügen Sie Ihren Favoriten die am häufigsten verwendeten oder komplexesten Formeln, Diagramme und alles andere hinzu und verwenden Sie sie in Zukunft schnell wieder.
  • Mehr als 20 Textfunktionen: Nummer aus Textzeichenfolge extrahieren; Teile von Texten extrahieren oder entfernen; Zahlen und Währungen in englische Wörter umwandeln.
  • Tools zusammenführen: Mehrere Arbeitsmappen und Blätter in einem; Zusammenführen mehrerer Zellen / Zeilen / Spalten ohne Datenverlust; Doppelte Zeilen und Summe zusammenführen.
  • Werkzeuge teilen: Aufteilen von Daten in mehrere Blätter basierend auf dem Wert; Eine Arbeitsmappe für mehrere Excel-, PDF- oder CSV-Dateien; Eine Spalte zu mehreren Spalten.
  • Einfügen überspringen Versteckte / gefilterte Zeilen; Zählen und summieren nach Hintergrundfarbe;; Senden Sie personalisierte E-Mails in großen Mengen an mehrere Empfänger.
  • Super Filter: Erstellen Sie erweiterte Filterschemata und wenden Sie sie auf alle Blätter an. Sortieren nach Woche, Tag, Häufigkeit und mehr; Filtern durch Fettdruck, Formeln, Kommentar ...
  • Mehr als 300 leistungsstarke Funktionen; Funktioniert mit Office 2007-2019 und 365; Unterstützt alle Sprachen; Einfache Bereitstellung in Ihrem Unternehmen oder Ihrer Organisation.

Vervollständigen Sie ein Textfeld automatisch, wenn Sie mit VBA-Code eingeben


Gehen Sie wie folgt vor, damit ein Textfeld automatisch vervollständigt wird, wenn Sie einen Anfangsbuchstaben in das Textfeld eingeben.

1. Bitte fügen Sie ein Textfeld ein, indem Sie auf klicken Developer > Insert > Textfeld (ActiveX-Steuerelement). Siehe Screenshot:

2. Und dann klicken Developer > Insert > Listenfeld (ActiveX Control) um ein Listenfeld in das aktuelle Arbeitsblatt einzufügen. Siehe Screenshot:

3. Klicken Sie mit der rechten Maustaste auf die Registerkarte Blatt, und klicken Sie dann auf Code anzeigen aus dem Kontextmenü wie unten Screenshot gezeigt.

4. In dem Microsoft Visual Basic für Applikationen Bitte kopieren Sie den folgenden VBA-Code und fügen Sie ihn in das Code-Fenster ein. Und dann klicken Tools > Referenzenund überprüfen Sie dann die Microsoft Scripting Runtime Box in der Referenzen - VBAProject Dialogbox. Siehe Screenshot:

VBA-Code: Vervollständigen Sie beim Eingeben automatisch ein Textfeld

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

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

5. Drücken Sie die Taste Andere + Q Tasten zum Verlassen des Microsoft Visual Basic für Applikationen Fenster.

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

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

Von nun an. Wenn Sie einen Anfangsbuchstaben in das Textfeld eingeben, werden alle Texte, die mit dem Buchstaben beginnen, den Sie in das Arbeitsblatt eingegeben haben, im Listenfeld auf der rechten Seite des Textfelds aufgelistet. Bitte doppelklicken Sie auf die gewünschte, um sie in das Textfeld einzugeben. Siehe Screenshot:

Hinweis: Du kannst den ... benutzen Up or Nach unten Pfeiltaste, um zwischen allen Texten mit automatischer Vervollständigung im Listenfeld zu wechseln, und drücken Sie dann die Taste Weiter Geben Sie die erforderliche Taste in das Textfeld ein.


In Verbindung stehende Artikel:


Die besten Tools für die Office-Produktivität

Kutools für Excel löst die meisten Ihrer Probleme und erhöht Ihre Produktivität um 80%

  • Wiederverwendung: Schnell einfügen komplexe Formeln, Diagramme und alles, was du vorher benutzt hast; Zellen verschlüsseln mit Passwort; Mailingliste erstellen und E-Mails senden ...
  • Super Formula Bar (leicht mehrere Textzeilen und Formeln bearbeiten); Layout lesen (leichtes Lesen und Bearbeiten einer großen Anzahl von Zellen); In gefilterten Bereich einfügen...
  • Zellen / Zeilen / Spalten zusammenführen ohne Daten zu verlieren; Inhalt geteilter Zellen; Kombinieren Sie doppelte Zeilen / Spalten... doppelte Zellen verhindern; Bereiche vergleichen...
  • Wählen Sie Duplizieren oder Eindeutig Reihen; Wählen Sie Leere Zeilen (alle Zellen sind leer); Super Find und Fuzzy Find in vielen Arbeitsmappen; Zufällige Auswahl ...
  • Exakte Kopie Mehrere Zellen ohne Änderung der Formelreferenz; Referenzen automatisch erstellen zu mehreren Blättern; Aufzählungszeichen einfügen, Kontrollkästchen und mehr ...
  • Text extrahieren, Text hinzufügen, Nach Position entfernen, Leerzeichen entfernen;; Paging-Zwischensummen erstellen und drucken; Inhalt und Kommentare zwischen Zellen konvertieren...
  • Superfilter (Speichern und Anwenden von Filterschemata auf andere Blätter); Erweiterte Sortierung nach Monat / Woche / Tag, Häufigkeit und mehr; Spezialfilter fett, kursiv ...
  • Kombinieren Sie Arbeitsmappen und Arbeitsblätter;; Tabellen basierend auf Schlüsselspalten zusammenführen; Daten in mehrere Blätter aufteilen; Batch-Konvertierung von xls, xlsx und PDF...
  • Mehr als 300 leistungsstarke Funktionen. Unterstützt Office / Excel 2007-2019 und 365. Unterstützt alle Sprachen. Einfache Bereitstellung in Ihrem Unternehmen oder Ihrer Organisation. Vollständige Funktionen 30 Tage kostenlose Testversion. 60 Tage Geld-zurück-Garantie.
kte tab 201905

Office Tab Bringt die Oberfläche mit Registerkarten in Office und erleichtert Ihnen die Arbeit erheblich

  • Aktivieren Sie das Bearbeiten und Lesen von Registerkarten in Word, Excel und PowerPoint, Publisher, Access, Visio und Project.
  • Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters und nicht in neuen Fenstern.
  • Steigert Ihre Produktivität um 50% und reduziert täglich Hunderte von Mausklicks für Sie!
officetab unten
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    suprio · 2 years ago
    Why would anyone go for writing a script when there are simpler ways to get a dropdown list???