Wie kann man schnell Elemente zwischen zwei Listenfeldern in Excel verschieben?
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.
![]() | ![]() | ![]() |
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.
2. Wählen Sie dann diese Daten aus und gehen Sie zum Namen-Feld, um ihnen den Namen ItemList zu geben. Siehe Screenshot:
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:
![]() | ![]() | ![]() |
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:
![]() | ![]() | ![]() |
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:
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
![]() | ![]() | ![]() |
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:
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
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.
Auswahl verschieben
![]() | ![]() | ![]() |
Alles verschieben
![]() | ![]() | ![]() |
Beste Büroproduktivitätswerkzeuge
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!