Risposte:
Il Shifttasto sposta la riga / colonna anziché sovrascrivere la riga / colonna di destinazione.
Questo è ancora un metodo taglia / incolla, ma è il modo più semplice che mi viene in mente.
Soluzione a 4 clic: (es. Sposta la riga 8 sopra la riga 5)
Nota: questo funziona anche per lo spostamento di più righe.
Aggiungi le seguenti macro alla cartella di lavoro Macro personale e assegna loro i tasti di scelta rapida. Il comportamento imita la riga di swap di Sublime Text e la riga di swap di 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
Nel trattare casi simili in passato, in cui non potevo semplicemente ordinare per riga, ho trovato il modo di generare una colonna con un risultato formula che era qualcosa su cui potevo ordinare.
Ho trovato una risposta più diretta alla tua domanda da questo sito :
Microsoft Word ha una funzionalità che manca a Excel. Il metodo di Jon prevede di spostare i dati in Word, impiegando il comando Word e incollando nuovamente i dati in Excel. Segui questi passi.
- Copia la parte pertinente di righe e colonne dal tuo foglio di calcolo. È meglio notare la dimensione dell'intervallo, ad esempio 118 righe x 5 colonne
- Incolla i dati in un documento di Microsoft Word, dove diventa automaticamente una tabella e conserva tutta la formattazione.
In Word, utilizzare MAIUSC-ALT-SU-FRECCIA e MAIUSC-ALT-GIÙ-FRECCIA poco noti per scorrere le righe (o i blocchi selezionati di righe) molto rapidamente su e giù a piacimento. Seleziona una o più righe. È possibile selezionare l'intera riga o solo una parte della riga, come mostrato qui.
Premi Maiusc + Alt + Su Freccia più volte per far scorrere rapidamente le file in posizione.
Dopo aver sequenziato le righe come preferisci, incollale nuovamente in Excel, assicurandoti di sovrascrivere lo stesso blocco delle stesse dimensioni che hai copiato.
Un leggero miglioramento sulla risposta di @ wilson:
Fare clic con il tasto destro del mouse sul numero di riga (es. Riga 8), premere "t" Fare clic con il tasto destro del mouse sul numero di riga (es. Riga 5), premere "e"
L'uso misto del mouse e della tastiera lo accelera davvero.
Ecco un sub che funziona anche per le colonne; unisce la funzionalità per tutte e quattro le direzioni:
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
Questo è il più semplice che ho trovato. Non riesci davvero a trascinare e rilasciare:
Ad esempio per spostare la riga 3 prima della riga 2: