134

Я должен сделать некоторые ручные изменения порядка или строк в Excel, и вырезать / вставить слишком сложно для использования. Я ищу что-то, что позволило бы мне использовать drag'n'drop или добавить несколько кнопок для перемещения вверх / вниз, перемещения вверх / вниз.

9 ответов9

198
  1. Выберите строку / столбец.
  2. Переместите курсор мыши к границе строки / столбца, чтобы вы увидели курсор в виде четырехсторонней стрелки (или курсор в виде руки на Mac).
  3. Нажмите Shift на клавиатуре, затем нажмите и перетащите строку / столбец.

Клавиша Shift сдвигает строку / столбец вместо перезаписи целевой строки / столбца.

11

Это все еще метод вырезания / вставки, но я думаю, что это самый простой способ.

Решение в 4 клика: (например, переместите строку 8 над строкой 5)

  1. Щелкните правой кнопкой мыши номер строки (например, строка 8), нажмите « Вырезать» (или T)
  2. Щелкните правой кнопкой мыши номер строки (например, строка 5), щелкните Вставить вырезанные ячейки (или E).

Примечание: это также работает для перемещения нескольких строк.

4

Пытаться:

Shift + пробел или щелчок мыши по номеру строки, чтобы выбрать строку

Ctrl + X, чтобы вырезать

Щелкните мышью там, где вы хотите.

Ctrl + V, чтобы вставить его

3

Добавьте следующие макросы в личную книгу макросов и назначьте им сочетания клавиш. Поведение имитирует Swap Line Up 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
2

В Mac используйте Ctrl + Shift при перетаскивании. Я полагаю, что в Windows это должен быть Win + Shift.

2

Имея дело с подобными случаями в прошлом, когда я не мог просто отсортировать по строке, я нашел способ создать столбец с результатом формулы, который я мог бы отсортировать.

Я нашел более прямой ответ на ваш вопрос с этого сайта:

В Microsoft Word есть функция, которой нет в Excel. Метод Джона включает перемещение данных в Word, использование команды Word и затем вставку данных обратно в Excel. Следуй этим шагам.

  1. Скопируйте соответствующий кусок строк и столбцов из таблицы. Лучше всего отметить размер диапазона, например, 118 строк х 5 столбцов
  2. Вставьте данные в документ Microsoft Word, где они автоматически становятся таблицей и сохраняют все ваше форматирование.
  3. В Word используйте малоизвестные клавиши SHIFT-ALT-UP-ARROW и SHIFT-ALT-DOWN-ARROW, чтобы очень быстро перемещать строки (или выбранные фрагменты строк) вверх и вниз по желанию. Выберите одну или несколько строк. Вы можете выбрать всю строку или только часть строки, как показано здесь.

    Нажмите Shift+Alt+UpArrow несколько раз, чтобы быстро сдвинуть ряды в нужное положение.

  4. Когда вы упорядочите строки по своему усмотрению, вставьте их обратно в Excel, убедившись, что вы перезаписали тот же самый фрагмент размера, который вы скопировали.

1

Вот подпункт, который также работает для столбцов; он сочетает в себе функциональность для всех четырех направлений:

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
1

Это самый простой, который я нашел. Не могу перетащить

Например, чтобы переместить строку 3 перед строкой 2:

  • щелкните правой кнопкой мыши на строке 3 (номер 3 слева) и выберите « Вырезать».
  • щелкните правой кнопкой мыши на строке 2 (на номер 2) и выберите Вставить вырезать клетки
1

Небольшое улучшение ответа @ wilson:

Щелкните правой кнопкой мыши номер строки (например, строка 8), нажмите "t" Щелкните правой кнопкой мыши номер строки (например, строка 5), нажмите "e"

Смешивание использования мыши и клавиатуры действительно ускоряет его для меня.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .