Zum Hauptinhalt springen

Wie kann man schnell Elemente zwischen zwei Listenfeldern in Excel verschieben?

Author: Sun Last Modified: 2025-05-28

Haben Sie jemals versucht, Elemente von einem Listenfeld in ein anderes zu verschieben, wie im folgenden Screenshot gezeigt? Hier werde ich über diese Berechnung in Excel sprechen.

a screenshot showing the listboxes before moving items a screenshot of an arrow a screenshot showing the listboxes after moving items

Elemente zwischen Listenfeldern verschieben


Elemente zwischen Listenfeldern verschieben

Es gibt keine integrierte Funktion, die Ihnen bei dieser Aufgabe helfen kann, aber ich habe einen VBA-Code, der helfen kann.

1. Zuerst müssen Sie eine Liste von Daten erstellen, die als Elemente in den Listenfeldern in einem neuen Arbeitsblatt namens Admin_Lists angezeigt werden.

a screenshot of the source data

2. Wählen Sie dann diese Daten aus und gehen Sie zum Namen-Feld, um ihnen den Namen ItemList zu geben. Siehe Screenshot:

a screenshot of naming the source data in the Name box

3. Klicken Sie dann in einem Arbeitsblatt, das die beiden Listenfelder enthält, auf Entwickler > Einfügen > Listenfeld (ActiveX-Steuerelement) und zeichnen Sie zwei Listenfelder. Siehe Screenshot:

a screenshot of selecting the List Box control under the Developer tab a screenshot of the right arrow a screenshot showing two created list boxes

Wenn die Registerkarte Entwickler in Ihrer Symbolleiste ausgeblendet ist, Wie zeigt/man die Entwickler-Registerkarte im Excel 2007/2010/2013-Menüband an? Dieser Artikel wird Ihnen zeigen, wie Sie sie anzeigen können.

4. Klicken Sie dann auf Entwickler > Einfügen > Befehlsschaltfläche (ActiveX-Steuerelement) und zeichnen Sie vier Schaltflächen zwischen den beiden Listenfeldern. Siehe Screenshot:

a screenshot of selecting command button control a screenshot of a right arrow 1 a screenshot showing the created command buttons

Benennen Sie nun die vier Befehlsschaltflächen mit neuen Namen um.

5. Wählen Sie die erste Befehlsschaltfläche aus, klicken Sie auf Eigenschaften, und geben Sie im Eigenschaftenfenster den Namen BTN_moveAllRight ein und tippen Sie >> in das Textfeld neben Beschriftung. Siehe Screenshot:

a screenshot showing how to changing the properties of the command button

6. Wiederholen Sie Schritt 5, um die letzten drei Befehlsschaltflächen mit den unten stehenden Namen umzubenennen und geben Sie auch verschiedene Pfeile in die Beschriftungen ein. Siehe Screenshot:

BTN_MoveSelectedRight

BTN_moveAllLeft

BTN_MoveSelectedLeft

a screenshot of the second command button after changing the properties a screenshot of the third command button after changing the properties a screenshot of the fourth command button after changing the properties

7. Klicken Sie mit der rechten Maustaste auf den Blattnamen, der die Listenfelder und Befehlsschaltflächen enthält, und wählen Sie Code anzeigen aus dem Kontextmenü. Siehe Screenshot:

a screenshot of opening the VBA code editor

8. Kopieren und fügen Sie den folgenden Makrocode in das Modul-Skript ein, speichern Sie den Code und schließen Sie das Microsoft Visual Basic for Applications-Fenster. Siehe Screenshot

VBA: Elemente zwischen zwei Listenfeldern verschieben

Private Sub Worksheet_Activate()
'UpdatebyExtendoffice20171117
    Dim xCell As Range
    Dim xRg As Range
    Set xRg = Sheets("Admin_Lists").Range("ItemList")
    Me.ListBox1.Clear
    Me.ListBox2.Clear
    With Me.ListBox1
        .LinkedCell = ""
        .ListFillRange = ""
        For Each xCell In xRg
            If xCell <> "" Then
                .AddItem xCell.Value
            End If
        Next xCell
    End With
    Me.ListBox1.MultiSelect = fmMultiSelectMulti
    Me.ListBox2.MultiSelect = fmMultiSelectMulti
End Sub

Private Sub BTN_MoveSelectedLeft_Click()
    Call moveSigle(Me.ListBox2, Me.ListBox1)
End Sub

Private Sub BTN_MoveSelectedRight_Click()
    Call moveSigle(Me.ListBox1, Me.ListBox2)
End Sub

Private Sub BTN_moveAllLeft_Click()
    Call moveAll(Me.ListBox2, Me.ListBox1)
End Sub

Private Sub BTN_moveAllRight_Click()
    Call moveAll(Me.ListBox1, Me.ListBox2)
End Sub

Sub moveAll(xListBox1 As Object, xListBox2 As Object)
    Dim I As Long
    For I = 0 To xListBox1.ListCount - 1
        xListBox2.AddItem xListBox1.List(I)
    Next I
    xListBox1.Clear
End Sub

Sub moveSigle(xListBox1 As Object, xListBox2 As Object)
    Dim I As Long
    For I = 0 To xListBox1.ListCount - 1
        If I = xListBox1.ListCount Then Exit Sub
        If xListBox1.Selected(I) = True Then
            xListBox2.AddItem xListBox1.List(I)
            xListBox1.RemoveItem I
            I = I - 1
        End If
    Next
End Sub

a screenshot showing how to use the VBA code

9. Gehen Sie dann zu einem anderen Arbeitsblatt und kehren Sie zurück zum Arbeitsblatt mit den Listenfeldern. Nun können Sie sehen, dass die Listendaten im ersten Listenfeld aufgelistet sind. Klicken Sie auf die Befehlsschaltflächen, um die Elemente zwischen den beiden Listenfeldern zu verschieben.

a screenshot showing the source data in one list box after running the VBA code

Auswahl verschieben

a screenshot of moving items from one list box to another one by one a screenshot of the arrow a screenshot showing two items have been moved to the right list box

Alles verschieben

a screenshot of marking which command button can be used to move all items from one list to another at the same time a screenshot of arrow 2 a screenshot showing all items are moved from one list box to another at the same time

Beste Büroproduktivitätswerkzeuge

🤖 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: Finden, Hervorheben oder Doppelte markieren   |  Leere Zeilen löschen   |  Spalten oder Zellen kombinieren ohne Datenverlust   |   Runden ...
Erweiterte SVERWEIS: Mehrfachkriterien SVERWEIS    Mehrfachwert SVERWEIS  |   Mehrblatt-SVERWEIS   |   Fuzzy Match ....
Erweiterte Dropdown-Liste: Schnell Dropdown-Liste erstellen   |  Abhängige Dropdown-Liste   |  Mehrfachauswahl Dropdown-Liste ....
Spaltenmanager: Eine bestimmte Anzahl von Spalten hinzufügen  |  Spalten verschieben  |  Sichtbarkeitsstatus ausgeblendeter Spalten umschalten  |  Bereiche & Spalten vergleichen ...
Hervorgehobene Funktionen: Gitterfokus   |  Entwurfsansicht   |   Erweiterte Formelleiste    Arbeitsmappe & Arbeitsblatt-Manager   |  AutoText-Bibliothek (Auto Text)   |  Datumsauswahl   |  Daten zusammenführen   |  Zellen verschlüsseln/entschlüsseln    E-Mail senden nach Liste   |  Spezialfilter   |   Spezialfilter (Filtern fett/kursiv/durchgestrichen...) ...
Top15 Werkzeugsets12 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 Konsolidieren & Aufteilen Werkzeuge (Erweiterte Zeilen zusammenführen, Zellen aufteilen, ...)   |   ... und mehr

Verbessern Sie Ihre Excel-Fähigkeiten mit Kutools für Excel und erleben Sie Effizienz wie nie zuvor. Kutools für Excel bietet über300 erweiterte Funktionen zur Steigerung der Produktivität und Zeitersparnis.  Klicken Sie hier, um die Funktion zu erhalten, die Sie am meisten benötigen...


Office Tab bringt eine Registerkartenoberfläche zu Office und macht Ihre Arbeit viel einfacher

  • Aktivieren Sie die Bearbeitung und das Lesen mit Registerkarten in Word, Excel, PowerPoint, Publisher, Access, Visio und Project.
  • Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters, anstatt in neuen Fenstern.
  • Steigert Ihre Produktivität um50 % und reduziert täglich hunderte von Mausklicks für Sie!