Respuestas:
La Shifttecla desplaza la fila / columna en lugar de sobrescribir la fila / columna de destino.
Este sigue siendo un método de cortar / pegar, pero es la forma más simple que se me ocurre.
Solución de 4 clics: (por ejemplo, mover la fila 8 sobre la fila 5)
Nota: Esto también funciona para mover varias filas.
Agregue las siguientes macros a su Libro de macros personal y asígneles teclas de acceso directo. El comportamiento imita la línea de intercambio y la línea de intercambio de Sublime Text.
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
Al tratar casos similares en el pasado, donde no podía ordenar por una fila, encontré la forma de generar una columna con un resultado de fórmula que era algo en lo que podía ordenar.
Encontré una respuesta más directa a su pregunta en este sitio :
Microsoft Word tiene una característica que le falta a Excel. El método de Jon implica mover los datos a Word, emplear el comando de Word y luego pegar los datos nuevamente en Excel. Sigue estos pasos.
- Copie la porción relevante de filas y columnas de su hoja de cálculo. Es mejor tener en cuenta el tamaño del rango, por ejemplo, 118 filas x 5 columnas.
- Pegue los datos en un documento de Microsoft Word, donde se convierte automáticamente en una tabla y conserva todo su formato.
En Word, use las teclas SHIFT-ALT-UP-ARROW y SHIFT-ALT-DOWN-ARROW poco conocidas para deslizar filas (o fragmentos de filas) muy rápidamente hacia arriba y hacia abajo a voluntad. Seleccione una o más filas. Puede seleccionar la fila completa o solo una parte de la fila como se muestra aquí.
Presione Mayús + Alt + Flecha arriba varias veces para deslizar rápidamente las filas hacia arriba en su posición.
Cuando haya secuenciado las filas a su gusto, péguelas nuevamente en Excel, asegurándose de sobrescribir exactamente el mismo tamaño que copió.
Una ligera mejora en la respuesta de @ wilson:
Haga clic con el botón derecho en el número de fila (por ejemplo, fila 8), presione "t" Haga clic con el botón derecho en el número de fila (por ejemplo, fila 5), presione "e"
Mezclar el uso del mouse y el teclado realmente me acelera.
Aquí hay un sub que también funciona para columnas; combina la funcionalidad para las cuatro direcciones:
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
Este es el más fácil que encontré. Realmente no puedo arrastrar y soltar:
Por ejemplo, para mover la fila 3 antes de la fila 2: