在 Excel 中交换单元格内容?

Dan*_*ing 47 microsoft-excel

有没有一种简单的方法可以在 Microsoft Excel 中交换两个单元格的内容?

简单,我的意思是键盘快捷键或菜单项,不涉及复制到临时单元格或编写 VBA 脚本或类似的东西。换句话说,我正在寻找一种方法来只选择两个单元格并单击某个菜单项或按某个组合键来交换它们的内容。当然,必须有办法做到这一点?

小智 49

来自:http : //www.extendoffice.com/documents/excel/860-excel-swap-contents-of-two-cells.html

有时,需要交换两个相邻的单元格。我们可以轻松地手动完成。看下面的截图,我想交换A4和B4单元格,请按如下操作:

在此处输入图片说明

  1. 选择要交换的单元格。在本例中,选择单元格 A4。

  2. Shift键,将光标置于右边框。

  3. 然后将光标拖动到单元格 B4 的右边框。

  4. 当显示“?”时,松开鼠标。

  5. 并且两个单元格内容已经交换。

在此处输入图片说明

使用这种方法,我们还可以交换两个相邻的行或列。

  • 这应该是我选择的分析仪。谢谢! (8认同)
  • 这仅适用于相邻单元格,这不是原始问题所要求的。 (4认同)
  • 它对我不起作用。它只是在这两个单元格之间插入空单元格 (2认同)

Jon*_*erg 22

对于相邻相同大小的矩形范围的特定情况,您可以使用this answer to a similar question中描述的方法。

  1. 选择右侧或底部范围
  2. Ctrl+X
  3. 选择相邻范围(即,正上方或左侧)
  4. Ctrl+ ++通常在=键上方,所以这会转换为Ctrl+ Shift+ =

请注意,您可以使用相同的过程来交换整个相邻的行或列。


gho*_*ppe 15

简单,我的意思是键盘快捷键或菜单项,不涉及复制到临时单元格或编写 VBA 脚本或类似的东西。我正在寻找一种方法来只选择两个单元格并单击某个菜单项或按某个组合键来交换它们的内容。

为什么要施加这个限制?创建宏使这变得微不足道。据我所知,它不能以任何其他方式完成。您可以将宏分配给按钮或热键。

Sub Swap()     
    If Selection.Count <> 2 Then     
         MsgBox "Select 2 cells (only) to swap."     
         Exit Sub     
    End If     
    Set trange = Selection     
    If trange.Areas.Count = 2 Then     
         temp = trange.Areas(2)     
         trange.Areas(2) = trange.Areas(1)     
         trange.Areas(1) = temp     
    Else     
         temp = trange(1)     
         trange(1) = trange(2)     
         trange(2) = temp     
    End If     
End Sub     
Run Code Online (Sandbox Code Playgroud)

  • 我几乎不会将两个单元格/行/列的内容交换为宠物函数。 (9认同)
  • @ghoppe 也许不是必需的,但是如果您快速搜索“交换 excel 中两个单元格的内容”(您已经拥有),很明显丹和我并不是唯一关心此功能的人。 (5认同)
  • 我不是 VBA 专家,既没有时间也没有意愿成为一名 VBA 专家。我也经常使用许多不同的计算机。在我用于 Excel 的每台计算机上都可以进行交换会很好,而不必查找执行此操作的 VBA 宏的代码,以便我可以将其绑定到热键。 (4认同)
  • @Dan 如果每个人都可以将自己的宠物功能内置到 Excel 中就好了,但那样会变得比现在更加臃肿。Excel 使用宏语言来自动执行此类重复性任务是有原因的。我发布了通过谷歌搜索找到的代码。你不必*必须*成为专家。 (3认同)

Dan*_*ing 5

不可以。如果不编写自己的宏,就无法在 Excel 中交换两个单元格的内容。

编辑:听起来现在可能有一种简单的方法可以在较新版本的 Excel 中交换单元格内容,所以这个答案现在可能已经过时了。