Ich versuche, eine Drag & Drop-Funktion in VBA zu erstellen, um Benutzern zu ermöglichen, Elemente zwischen ListBoxen auf einem UserForm zu verschieben. VBA Listbox Drag & Drop
Das Problem, das ich habe, ist, dass, wenn Sie die Maustaste gedrückt klicken und die Maus bewegen, die ListBox Auswahl bewegt sich nach oben und unten auf der Liste. Es ist mir gelungen, einige Zeilen zu schreiben, die die Auswahl erfassen, wenn Sie die Maustaste gedrückt halten. Wenn Sie sie also in die andere ListBox ziehen, wird das richtige Element gelöscht. Allerdings scheint die markierte Auswahl der ersten ListBox deaktiviert zu sein Putting für den Endnutzer.
Ich habe versucht, die Auswahl auf das Originalelement jedes Mal, wenn Sie die Maus auf dem MouseMove-Ereignis bewegen, aber es funktioniert einfach nicht, wenn der Cursor mit Elementen auf der Liste übereinstimmt, es springt jedoch zurück, wenn Sie Bewegen Sie den Cursor unter die Liste.
Here's a copy of the macro workbook (Excel 2010)
Könnte jemand etwas Licht leuchten auf, wie dieses verbessert werden könnte?
Edit Hinweis: Dieses Beispiel wird nur Elemente aus dem linken Feld auf der rechten Seite hinzufügen, ich plane, alle hier gefundenen Lösungen auf einem UserForm mit mehreren ListBoxen zu replizieren, so hoffe ich, dass jemand eine gute Mechanik kennt, um dies zu erreichen.
Warum fügen Sie keine Schaltfläche zwischen zwei Feldern hinzu und schreiben Code, um ausgewählte Elemente von einer Box in eine andere zu verschieben ...? gefällt das [** eins **] (http://www.contextures.com/excelvbalistboxmoveuserform.html). – ManishChristian
@ManishChristian Dies ist ein abgespecktes Beispiel für die Diskussion, die tatsächliche Verwendung, die ich im Sinn habe, ist eine Form mit mehreren Kästchen, in denen mehrere Schaltflächen, um Elemente zwischen ihnen alle auszutauschen, ziemlich umständlich werden könnte. – Carrosive
Überprüfen Sie den Link [** this **] (http://www.mrexcel.com/forum/excel-questions/446895-need-help-code-drag-drop.html). – ManishChristian