如何通过拖放或上移或下移轻松地在Excel中对行进行重新排序?


142

我必须在Excel中进行一些手动重新排序或行,并且剪切/粘贴太难使用了。我正在寻找使我能够使用拖放或添加一些按钮来向上/向下移动顶部/底部的东西。

Answers:


211
  1. 选择行/列。
  2. 将鼠标光标移至行/列的边界,以便您看到四向箭头光标(或在Mac上为手形光标)。
  3. Shift键盘上的,然后单击并拖动行/列。

Shift键可移动行/列,而不是覆盖目标行/列。


18
在Mac上,对于第二步,您想移动鼠标光标,以便看到手形图标,而不是四向箭头光标。
Scott Ritchie 2014年

2
我有Excel 2013,现在当您看到四向光标移动行为后移动一行时,它似乎是默认行为。按SHIFT实际替换目标行
Korayem

我有Office365(所以我认为发布时我拥有的是Excel的最新版本-在任何地方都找不到合适的版本号)。选择任何一组单元格(不仅是行/列),移动到边框以获得4向箭头,然后拖动来移动数据-留下一个空洞。删除它会警告覆盖。Shift +拖动尝试重新排列行或列的顺序,但前提是选择了完整的行/列。“完整” =所有某些矩形区域-不一定是完整的电子表格。//混淆:必须将鼠标悬停在数据单元的边界上,而不是要调整大小的行号或列字母的边界上。
Krazy Glew

有谁知道获取此“ 4向箭头”的快捷方式-键盘快捷方式或宏/ Visual Basic(或任何称为新宏的语言)?我发现用鼠标精确地做到这一点真的很困难,更不用说在触摸屏或笔上了。理想情况下,我希望有一个“拇指”来像这样拖动行和列。
Krazy Glew

1
有人知道该怎么做Google表格吗?
Krazy Glew

13

这仍然是剪切/粘贴方法,但这是我能想到的最简单的方法。

4单击解决方案:(例如,将第8行移至第5行上方)

  1. 右键点击行号(例如第8行),点击剪切(或T
  2. 右键单击行号(例如,第5行),单击“ 插入剪切单元”(或E

注意:这也适用于移动多行。


这是仅鼠标的解决方案,没有拖放操作,因此非常适合将行移动到需要滚动的其他位置。否则,@ kok的答案会更优雅。
威尔逊

谢谢,这对我还是有用的,kok更好,但是起初我需要更长一点的时间来理解,尽管它的内联性并不那么难,但不得不看一下边界按钮,一个人必须习惯
FantomX1

3

尝试:

Shift+ Space bar或单击行号以选择行

Ctrl+ X

鼠标单击所需的位置。

Ctrl+ V粘贴


2
错误答案。这将取代而不是重新排序
威尔逊

3

将以下宏添加到您的“个人宏工作簿”中,并为其分配快捷键。该行为模仿了Sublime Text的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

2

在处理过去不能仅按行排序的类似情况时,我找到了一种生成具有公式结果的列的方法,该结果可以排序。

我从此站点找到了对您问题的更直接答案:

Microsoft Word具有Excel所缺少的功能。Jon的方法包括将数据移至Word,使用Word命令,然后将数据粘贴回Excel。跟着这些步骤。

  1. 从表中复制相关的行和列块。最好注意范围的大小,例如118行x 5列
  2. 将数据粘贴到Microsoft Word文档中,该文档将自动成为表格并保留所有格式。
  3. 在Word中,使用鲜为人知的SHIFT-ALT-上箭头和SHIFT-ALT-下箭头可非常快地随意上下滑动行(或选定的行大块)。选择一个或多个行。您可以选择整个行,或仅选择行的一部分,如下所示。

    在此处输入图片说明

    多次按Shift + Alt + UpArrow,以快速将行向上滑动到位。

    在此处输入图片说明

  4. 在对行进行了排序后,请将其粘贴回Excel中,确保覆盖了与复制的大小相同的块。


甜!我希望有一种方法可以在Excel或OneNote中进行。//(如上所述,Excel会进行特殊的鼠标拖动,但是我对此没有mouse.coordination。)//不幸的是,一个人放弃了其他Excel优点,例如按列值对表进行排序,以获得这个字的好处
Krazy Glew

2

在Mac中,拖动时使用Command+ Shift。我想在Windows中应该是Win+ Shift


1

@wilson的答案略有改进:

右键单击行号(例如第8行),单击“ t”右键单击行号(例如,第5行),单击“ e”

鼠标和键盘的混合使用确实为我加快了速度。


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),然后选择“ 插入剪切单元”
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.