Antworten:
Die ShiftTaste verschiebt die Zeile / Spalte, anstatt die Zielzeile / -spalte zu überschreiben.
Dies ist immer noch eine Methode zum Ausschneiden / Einfügen, aber die einfachste Methode, die ich mir vorstellen kann.
4-Klick-Lösung: (zB Zeile 8 über Zeile 5 verschieben)
Hinweis: Dies funktioniert auch zum Verschieben mehrerer Zeilen.
Fügen Sie Ihrer persönlichen Makroarbeitsmappe die folgenden Makros hinzu, und weisen Sie ihnen Tastenkombinationen zu. Das Verhalten imitiert Sublime Texts Swap Line Up & Swap Line Down.
Sub move_rows_down()
Dim rOriginalSelection As Range
Set rOriginalSelection = Selection.EntireRow
With rOriginalSelection
.Select
.Cut
.Offset(rOriginalSelection.rows.Count + 1, 0).Select
End With
Selection.Insert
rOriginalSelection.Select
End Sub
Sub move_rows_up()
Dim rOriginalSelection As Range
Set rOriginalSelection = Selection.EntireRow
With rOriginalSelection
.Select
.Cut
.Offset(-1, 0).Select
End With
Selection.Insert
rOriginalSelection.Select
End Sub
In ähnlichen Fällen in der Vergangenheit, in denen ich nicht nur nach einer Zeile sortieren konnte, fand ich einen Weg, eine Spalte mit einem Formelergebnis zu generieren, nach dem ich sortieren konnte.
Ich habe auf dieser Website eine direktere Antwort auf Ihre Frage gefunden :
Microsoft Word hat eine Funktion, die Excel fehlt. Jons Methode besteht darin, die Daten nach Word zu verschieben, den Word-Befehl zu verwenden und die Daten anschließend wieder nach Excel einzufügen. Folge diesen Schritten.
- Kopieren Sie den entsprechenden Zeilen- und Spaltenblock aus Ihrer Tabelle. Beachten Sie am besten die Größe des Bereichs, z. B. 118 Zeilen x 5 Spalten
- Fügen Sie die Daten in ein Microsoft Word-Dokument ein, wo sie automatisch zu einer Tabelle werden und Ihre gesamte Formatierung beibehalten.
Verwenden Sie in Word die wenig bekannten Tasten UMSCHALT-ALT-NACH-OBEN-PFEIL und UMSCHALT-ALT-NACH-UNTEN-PFEIL, um Zeilen (oder ausgewählte Zeilenblöcke) nach Belieben sehr schnell nach oben und unten zu schieben. Wählen Sie eine oder mehrere Zeilen aus. Sie können die gesamte Zeile oder nur einen Teil der Zeile auswählen, wie hier gezeigt.
Drücken Sie mehrmals Shift + Alt + UpArrow, um die Zeilen schnell nach oben zu schieben.
Wenn Sie die Zeilen nach Ihren Wünschen sequenziert haben, fügen Sie sie wieder in Excel ein, und stellen Sie sicher, dass Sie genau die Größe überschreiben, die Sie kopiert haben.
Eine leichte Verbesserung gegenüber der Antwort von @ Wilson:
Klicken Sie mit der rechten Maustaste auf die Zeilennummer (z. B. Zeile 8) und drücken Sie "t". Klicken Sie mit der rechten Maustaste auf die Zeilennummer (z. B. Zeile 5) und drücken Sie "e".
Das Mischen von Maus und Tastatur beschleunigt das für mich wirklich.
Hier ist ein Sub, das auch für Spalten funktioniert. es kombiniert die Funktionalität für alle vier Richtungen:
Sub MoveRowsOrColumns(direction As String)
Dim rOriginalSelection As Range
Select Case direction
Case "up", "down"
Set rOriginalSelection = Selection.EntireRow
Case "left", "right"
Set rOriginalSelection = Selection.EntireColumn
Case Else
Debug.Assert False
End Select
With rOriginalSelection
.Select
.Cut
Select Case direction
Case "up"
.Offset(-1, 0).Select
Case "down"
.Offset(rOriginalSelection.Rows.Count + 1, 0).Select
Case "left"
.Offset(0, -1).Select
Case "right"
.Offset(0, rOriginalSelection.Columns.Count + 1).Select
End Select
End With
Selection.Insert
rOriginalSelection.Select
End Sub
Dies ist die einfachste, die ich gefunden habe. Kann nicht wirklich ziehen und ablegen:
So verschieben Sie beispielsweise Zeile 3 vor Zeile 2: