Respostas:
A Shiftchave muda a linha / coluna em vez de substituir a linha / coluna de destino.
Esse ainda é um método de recortar / colar, mas é a maneira mais simples de pensar.
Solução de 4 cliques: (por exemplo, mova a linha 8 acima da linha 5)
Nota: Isso também funciona para mover várias linhas.
Adicione as seguintes macros à sua Pasta de trabalho de macros pessoal e atribua a elas teclas de atalho. O comportamento imita Swap Line Up e 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
Ao lidar com casos semelhantes no passado, nos quais eu não podia apenas classificar por uma linha, encontrei uma maneira de gerar uma coluna com um resultado de fórmula que era algo que eu poderia classificar.
Encontrei uma resposta mais direta à sua pergunta neste site :
O Microsoft Word tem um recurso que falta no Excel. O método de Jon envolve mover os dados para o Word, empregar o comando Word e colar os dados novamente no Excel. Siga esses passos.
- Copie a parte relevante de linhas e colunas da sua planilha. É melhor observar o tamanho do intervalo, por exemplo, 118 linhas x 5 colunas
- Cole os dados em um documento do Microsoft Word, onde ele se torna automaticamente uma tabela e mantém toda a sua formatação.
No Word, use as conhecidas SHIFT-ALT-UP-SETA e SHIFT-ALT-DOWN-SETA para deslizar linhas muito rapidamente (ou pedaços selecionados de linhas) para cima e para baixo à vontade. Selecione uma ou mais linhas. Você pode selecionar a linha inteira ou apenas uma parte da linha, como mostrado aqui.
Pressione Shift + Alt + Seta para cima várias vezes para deslizar rapidamente as linhas para cima na posição.
Quando você seqüenciar as linhas como desejar, cole-as novamente no Excel, certificando-se de substituir exatamente o mesmo tamanho de tamanho que você copiou.
Uma ligeira melhoria na resposta de @ wilson:
Clique com o botão direito do mouse no número da linha (por exemplo, linha 8), pressione "t" Clique com o botão direito do mouse no número da linha (por exemplo, linha 5), pressione "e"
O uso misto do mouse e do teclado realmente acelera para mim.
Aqui está um sub que também funciona para colunas; combina a funcionalidade para todas as quatro direções:
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 é o mais fácil que encontrei. Não é possível arrastar e soltar:
Por exemplo, para mover a linha 3 antes da linha 2: