Tipp: Andere Sprachen sind Google-Übersetzungen. Sie können die English Version dieses Links.
Einloggen
x
or
x
x
Registrieren
x

or

Wie wird die automatische Vervollständigung beim Eintippen in die Excel-Dropdown-Liste vorgenommen?

Wenn Sie eine Drop-Down-Liste für die Datenüberprüfung mit großen Werten haben, müssen Sie in der Liste nach unten scrollen, nur um das richtige zu finden, oder Sie geben das ganze Wort direkt in das Listenfeld ein. Wenn es eine Methode gibt, um die automatische Vervollständigung zuzulassen, wenn der erste Buchstabe in der Dropdown-Liste eingegeben wird, wird alles einfacher. In diesem Lernprogramm stellen wir Ihnen das Einfügen eines Kombinationsfelds in das Arbeitsblatt und das Ausführen von VBA-Code zusammen zum Erreichen der Autocomplete-Funktion in der Dropdown-Liste zur Verfügung.

Autocomplete beim Eintippen in die Dropdown-Liste mit VBA-Code


Kombinieren Sie mehrere Arbeitsblätter / Arbeitsmappen zu einem Arbeitsblatt / einer Arbeitsmappe:

Kombinieren Sie mehrere Arbeitsblätter oder Arbeitsmappen in einem einzigen Arbeitsblatt oder Arbeitsmappe kann eine große Aufgabe in Ihrer täglichen Arbeit sein. Aber wenn du es getan hast Kutools for Excel, sein mächtiger Nutzen - Kombinieren kann Ihnen helfen, mehrere Arbeitsblätter und Arbeitsmappen schnell zu einem Arbeitsblatt oder einer Arbeitsmappe zusammenzufassen. Laden Sie jetzt den kostenlosen 60-Day-kostenlosen Trail von Kutools for Excel herunter!

Kutools for Excel: mit mehr als 200 praktischen Excel-Add-Ins, die Sie in 60-Tagen kostenlos ausprobieren können. Laden Sie jetzt die kostenlose Testversion herunter!


Autocomplete beim Eintippen in die Dropdown-Liste mit VBA-Code

Zuerst müssen Sie ein Kombinationsfeld in das Arbeitsblatt einfügen und seine Eigenschaften ändern, und dann den VBA-Code ausführen, um die automatische Vervollständigung zu aktivieren.

1. Rufen Sie das Arbeitsblatt auf, das die Dropdownliste enthält, die automatisch vervollständigt werden soll.

2. Bevor Sie das Kombinationsfeld einfügen, müssen Sie das Kontrollkästchen aktivieren Entwickler Registerkarte in der Multifunktionsleiste.

1). Klicken Sie in Excel 2010 und 2013 auf Datei > Options. Und in der Options Dialogfeld, klicken Sie auf Menüband anpassen im rechten Bereich, überprüfen Sie die Entwickler Klicken Sie dann auf die Schaltfläche OK Taste. Siehe Screenshot:

2). Klicken Sie in Outlook 2007 auf Büro Taste> Excel-Optionen. In dem Excel-Optionen Dialogfeld, klicken Sie auf Beliebt in der rechten Leiste, dann überprüfen Sie die Zeigen Sie die Registerkarte Entwickler anin der Multifunktionsleiste Box, und klicken Sie schließlich auf die Schaltfläche OK klicken.

3. Dann klick Entwickler > Einsatz > Kombinationsfeld für ActiveX Controls. Siehe Screenshot:

4. Zeichnen Sie das Kombinationsfeld im aktuell geöffneten Arbeitsblatt und klicken Sie mit der rechten Maustaste darauf. Wählen Immobilien im Kontextmenü.

5. In dem Immobilien Dialogfeld müssen Sie:

1). Ändern Sie den Namen in TempKombi in dem Name Feld;

2). Geben Sie die Schriftart an, die Sie in der benötigen Schriftart Feld;

3). Scrollen Sie nach unten, um auszuwählen 1-fmMatchEntryComplete in dem Übereinstimmungseingabe Feld;

4). Schließe Immobilien Dialogbox.

6. Schalten Sie den Design-Modus mit einem Klick aus Entwickler > Entwurfsmodus.

7. Klicken Sie mit der rechten Maustaste auf die aktuell geöffnete Registerkarte "Arbeitsblatt" und klicken Sie auf Code anzeigen. Siehe Screenshot:

8. Stellen Sie sicher, dass der aktuelle Arbeitsblatt-Code-Editor geöffnet ist, kopieren Sie dann den folgenden VBA-Code und fügen Sie ihn ein. Siehe Screenshot:

VBA-Code: Automatische Vervollständigung bei der Eingabe in die Dropdown-Liste

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Update by Extendoffice: 2018/9/21
    Dim xCombox As OLEObject
    Dim xStr As String
    Dim xWs As Worksheet
    Dim xArr
    
    Set xWs = Application.ActiveSheet
    On Error Resume Next
    Set xCombox = xWs.OLEObjects("TempCombo")
    With xCombox
        .ListFillRange = ""
        .LinkedCell = ""
        .Visible = False
    End With
    If Target.Validation.Type = 3 Then
        Target.Validation.InCellDropdown = False
        Cancel = True
        xStr = Target.Validation.Formula1
        xStr = Right(xStr, Len(xStr) - 1)
        If xStr = "" Then Exit Sub
        With xCombox
            .Visible = True
            .Left = Target.Left
            .Top = Target.Top
            .Width = Target.Width + 5
            .Height = Target.Height + 5
            .ListFillRange = xStr
            If .ListFillRange = "" Then
                xArr = Split(xStr, ",")
                Me.TempCombo.List = xArr
            End If
            .LinkedCell = Target.Address
        End With
        xCombox.Activate
        Me.TempCombo.DropDown
    End If
End Sub
Private Sub TempCombo_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    Select Case KeyCode
        Case 9
            Application.ActiveCell.Offset(0, 1).Activate
        Case 13
            Application.ActiveCell.Offset(1, 0).Activate
    End Select
End Sub

9 Klicken Datei > Schließen und zurück zu Microsoft Excel schließen Microsoft Visual Basic für Anwendung Fenster.

10. Klicken Sie nun einfach auf die Zelle mit der Dropdown-Liste, Sie sehen, dass die Dropdown-Liste als Kombinationsfeld angezeigt wird, und geben Sie den ersten Buchstaben in das Feld ein. Das entsprechende Wort wird automatisch vervollständigt. Siehe Screenshot:

Text: Dieser VBA-Code wird nicht auf verbundene Zellen angewendet.

Office Tab - Tabbed Browsing, Bearbeiten und Verwalten von Arbeitsmappen in Excel:

Office Tab bringt die Tabbed-Schnittstelle, wie sie in Webbrowsern wie Google Chrome, neuen Internet Explorer-Versionen und Firefox zu Microsoft Excel zu sehen ist. Es werden ein zeitsparendes Werkzeug sein und in Ihrer Arbeit nicht zu ersetzen sein. Siehe unten:

Klicken Sie hier für eine kostenlose Testversion von Office Tab!

Office-Registerkarte für Excel

In Verbindung stehende Artikel:



Empfohlene Produktivitätswerkzeuge für Excel

Kutools for Excel hilft Ihnen, Ihre Arbeit immer im Voraus zu erledigen und sich von der Masse abzuheben

  • Mehr als 300 leistungsstarke erweiterte Funktionen, die für 1500-Arbeitsszenarien entwickelt wurden und die Produktivität um 70% steigern, geben Ihnen mehr Zeit, sich um Ihre Familie zu kümmern und das Leben zu genießen.
  • Sie müssen keine Formeln und VBA-Codes mehr auswendig lernen. Geben Sie Ihrem Gehirn eine Pause.
  • Werden Sie ein Excel-Experte in 3 Minuten. Komplizierte und wiederholte Operationen können in Sekunden durchgeführt werden.
  • Reduzieren Sie jeden Tag Tausende von Tastatur- und Mausoperationen und verabschieden Sie sich jetzt von Berufskrankheiten.
  • 110,000 hochwirksame Mitarbeiter und 300 + weltweit renommierte Unternehmen.
  • Kostenlose Testversion für 60-Tage mit allen Funktionen. Geld-zurück-Garantie für 60-Tage. 2 Jahre kostenloses Upgrade und Support.

Bringt das Browsen und Bearbeiten von Registerkarten in Microsoft Office, das weitaus leistungsstärker ist als die Registerkarten des Browsers

  • Die Registerkarte "Office" wurde für Word, Excel, PowerPoint und andere Office-Anwendungen entwickelt: 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!
Say something here...
symbols left.
You are guest ( Sign Up? )
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.
    imre · 1 years ago
    Hi, please help me to sort my issue with this code. Its working fine excpet one thing. When code is active excel wont let me to Copy and paste anything within the sheet. I tested on 2016 excel and its PERFECT! but at work we have 2007 excel... Its working but blocking copy and paste, why it is happening?
  • To post as a guest, your comment is unpublished.
    Hossam · 1 years ago
    Hi,

    This is a great macro, it worked with me fine, but how do I make the selection limited to the drop down list, I tried typing a random name which was not n the list and it got accepted.

    Thanks
    • To post as a guest, your comment is unpublished.
      J Hames · 4 months ago
      Having this same issue. Would love to know if you ever found a solution. Using this code for a database at my place of business. Used by several different employees with the idea of keeping down mistakes made through typos.
  • To post as a guest, your comment is unpublished.
    MakoSipper · 1 years ago
    Doesn't work with data validation for me. It seems to be focused on manually input drop down lists, not drop down generated when you use Data Validation.
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Good Day,
      It is a data validation drop down list provided in my case.
  • To post as a guest, your comment is unpublished.
    Carsten · 1 years ago
    OK got this to work with one problem, I need to keep selections to the list. It populates ok, but if I enter a word not in the list, it still accepts it.

    I think it is something in the properties or VBA but not sure

    I also want to go to right cell after I hit enter as this is how I have it set up


    Thanks
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Dear Carsten,
      Please change the Style field to 2- fmSpecialEffectSunken in the Properties window of the Combo box, and then apply below VBA code. Hope I can help.

      Dim xRg As Range
      Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      Dim xCombox As OLEObject
      Dim xStr As String
      Dim I As Long
      Dim xWs As Worksheet
      Set xWs = Application.ActiveSheet
      On Error Resume Next
      Set xCombox = xWs.OLEObjects("TempCombo")
      With xCombox
      .ListFillRange = ""
      .LinkedCell = ""
      .Visible = False
      End With
      If Target.Validation.Type = 3 Then
      Target.Validation.InCellDropdown = False
      Cancel = True
      xStr = Target.Validation.Formula1
      xStr = Right(xStr, Len(xStr) - 1)
      If xStr = "" Then Exit Sub
      Set xRg = Target
      With xCombox
      .Visible = True
      .Left = Target.Left
      .Top = Target.Top
      .Width = Target.Width + 5
      .Height = Target.Height + 5
      .ListFillRange = xStr
      .LinkedCell = Target.Address
      End With
      xCombox.Activate
      Me.TempCombo.DropDown
      End If
      End Sub
      Private Sub TempCombo_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
      Dim xSel As Range
      On Error Resume Next
      Select Case KeyCode
      Case 13
      xRg.Offset(0, 1).Select
      End Select
      End Sub
  • To post as a guest, your comment is unpublished.
    Leandro · 1 years ago
    Hay alguna forma de mover el Combo? Como se encuentra directamente abajo de la lista desplegable al apretar Enter (una vez seleccionado el dato de dicha lista) te selecciona el Combo y termina mostrándote dos listas.