Відповіді:
ShiftКлюч зсувається на рядок / стовпець замість перезапису цільової рядки / стовпці.
Це все-таки метод вирізання / вставки, але це найпростіший спосіб, який я можу придумати.
Рішення в 4 кліки: (наприклад, перемістити рядок 8 над рядком 5)
Примітка. Це також працює для переміщення декількох рядків.
Додайте такі макроси до вашої особистої макроробочої книги та призначте їм клавіші швидкого доступу. Поведінка імітує 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
Розглядаючи подібні випадки в минулому, коли я не міг просто сортувати за рядком, я знайшов спосіб генерувати стовпчик з результатом формули, який би міг сортувати.
Я знайшов більш пряму відповідь на ваше запитання з цього сайту :
Microsoft Word має функцію, якої не вистачає Excel. Метод Джона включає переміщення даних у Word, використання команди Word та вставку даних назад в Excel. Виконайте ці кроки.
- Скопіюйте відповідний шматок рядків та стовпців із таблиці. Найкраще відзначити розмір діапазону, наприклад, 118 рядків x 5 стовпців
- Вставте дані в документ Microsoft Word, де вони автоматично стають таблицею і зберігають усе ваше форматування.
Словом, використовуйте маловідомі клавіші SHIFT-ALT-UP-ARROW та SHIFT-ALT-DOWN-ARROW для дуже швидкого пересування рядків (або вибраних фрагментів рядків) за бажанням. Виберіть один або кілька рядків. Ви можете вибрати весь рядок або лише частину рядка, як показано тут.
Натисніть Shift + Alt + UpArrow кілька разів, щоб швидко просунути рядки вгору.
Коли ви послідовно прокреслили рядки, вставте їх у Excel, переконайтесь, що ви перезаписали той самий розмір, який ви скопіювали.
Ось підпункт, який також працює для стовпців; він поєднує функціональність у всіх чотирьох напрямках:
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
Це найпростіший, який я знайшов. Неможливо перетягнути:
Наприклад, щоб перемістити рядок 3 перед рядком 2: