如何在Excel中交换单元格

如何在Excel中交换单元格

有时,当您组织数据、创建图表或分析信息时,可能需要交换两个单元格(即更改两个单元格的位置)。

如何在Excel中交换单元格

虽然 Excel 中没有用于交换单元格的内置功能,但可以使用简单的鼠标拖放技术或旧的传统剪切粘贴方法轻松完成此操作。

在这篇简短的文章中,我将向您展示如何使用一些简单的快捷方式和 VBA 代码在 Excel 中交换单元格。

推荐:如何阻止访问Windows声音方案设置

使用鼠标+Shift键交换单元格

快速交换两个单元格的最简单、最快的方法是使用鼠标和 Shift 键技术。

当您想要交换到相邻单元格或列时,此方法效果最佳,但它也可用于交换非相邻单元格或列。

下面是示例数据集,其中 B 列中有培训师的姓名,A 列中有他们需要提供培训的日期。

在 Excel 中交换单元格的数据集

现在,由于某种原因,迈克无法参加周二的训练,并希望在周三与珍妮交换位置。

您可以使用以下步骤快速交换两个单元格,以便在单元格 B3 和 B4 中互换名称:

  1. 选择要交换的单元格之一。 在本例中,我将选择单元格 B3,其名称为 Mike。
  2. 将光标移至所选内容的底部边缘。 您会注意到光标变为四箭头图标(参见下图)。
当光标放置在所选内容的底部边缘时会发生变化
  1. 按住 Shift 键(并保持按住)
  2. 按住鼠标右键(如果在笔记本电脑上使用触控板,则按住键盘键)
  3. 向下移动鼠标光标,直到您在单元格 B4(我要与之交换当前所选单元格)下方看到一条粗绿线(看起来像拉长的 H)
按住 Shift 键的同时向下移动单元格
  1. 保留鼠标键和 Shift 键。

瞧! 神奇的朋友!

您可以在下面看到整个操作过程:

在 Excel 演示中交换两个单元格

两个单元已交换。 迈克现在在星期三前面,珍妮现在在星期二前面。

这是快速交换单元格甚至行和列的最简单、最快的方法。 您唯一需要确保的是粗绿线出现在您想要将当前单元格移动到的单元格后面。

笔记:此方法会移动整个单元格,而不仅仅是单元格中的值。 因此,当您交换两个单元格时,它也会交换单元格格式以及该单元格中的任何公式。

Also read: Flip Data in Excel | Reverse Order of Data in Column/Row

交换非相邻单元格

在上面的示例中,我向您展示了如何交换两个连续的单元格。

您还可以使用它来交换到不相邻的单元格。 但是,您必须重复此过程两次。

例如,假设我有如下所示的相同数据集,并且我想对 Mike 和 Kate 的日期进行排序。

在 Excel 中交换单元格的数据集

在这种情况下,我首先必须将单元格 B3 (Mike) 移动到 B5 (Kate)。 这会将迈克移至凯特的位置,并将珍妮和凯特的牢房移至上方。

现在,我必须选择单元格 B4(名为 Kate)并将其移动到单元格 B3。

使用shift交换非相邻单元格

笔记:虽然我向您展示了交换列中单元格的示例,但您也可以执行此操作来交换行中的单元格。 您可以使用此方法交换整行或整列。

Also read: Convert Columns to Rows in Excel

使用旧的、可靠的剪切和粘贴

交换单元格的另一种方法是使用更长但可靠的剪切和粘贴选项。

在此方法中,无论交换相邻单元格还是非相邻单元格,过程都保持不变。

让我向您展示它是如何工作的:

下面,我有一个数据集,我想在其中交换名为 Mike 和 Jenny 的单元格。

在 Excel 中交换单元格的数据集

以下是使用剪切粘贴方法交换两个单元格的步骤。

  1. 选择要交换的单元格之一。 在本例中,我将选择单元格 B3。
  2. 切开细胞。 您可以在 Windows 中使用快捷键 Control + X 或在 Mac 中使用 Command + X。 您还可以右键单击单元格,然后单击“剪切”。
  3. 转到工作表中的任何空白单元格,选择它,然后粘贴您在步骤 2 中剪切的单元格。您可以使用 Control + V 来执行此操作(或在 Mac 中使用 Command + V)。 在此示例中,我将在单元格 D5 中执行此操作。
剪切单元格并将其放入工作表中的临时单元格中
  1. 现在选择单元格 B4 并将其剪切(Control + X)。 当你切开细胞时,你会看到蚂蚁在细胞周围跳舞。
剪切 B4 单元格
  1. 现在选择单元格 B3 并粘贴您在步骤 4 中剪切的单元格。您可以使用 Control + V 执行此操作
粘贴到B3
  1. 现在,选择单元格 D5(我们在步骤 3 中粘贴单元格 B3 的位置),然后使用 Control + X 剪切它
剪切带有名称的临时单元
  1. 将其粘贴到单元格 B4 上。
粘贴到B4

虽然这可能看起来是一个包含很多步骤的漫长过程,但一旦掌握了该过程,它就不那么难了。

笔记:虽然我已经展示了如何使用此方法仅交换两个单元格,但您可以使用它来交换多个单元格甚至行和列。

Also read: How to Copy Column Widths in Excel (Shortcut)

使用VBA(交换非相邻单元格)

您还可以使用简单的 VBA 代码交换两个单元格。

由于 VBA 需要进行一些设置,因此只有当您必须对许多不同的工作表执行此操作,或者您需要经常执行此操作以便您可以创建一次代码然后多次重复使用时,此方法才有意义。

下面是用于交换的 VBA 代码

'Code developed by Sumit Bansal from 
Sub SwapCells()
Dim temp As Variant
Dim Cell1 As Range
Dim Cell2 As Range
    
'Define the cell ranges
Set Cell1 = Range("B3")
Set Cell2 = Range("B4")
    
'Swap values using a temporary variable
temp = Cell1.Value
Cell1.Value = Cell2.Value
Cell2.Value = temp

End Sub

上面创建了一个临时位置(使用 temp 变量)并将第一个单元格的值存储在该位置中。 然后,它将第二个单元格复制到第一个单元格上,然后使用 temp 变量中的值粘贴到第二个单元格中。

VBA 代码遵循与我在本文中介绍的第二种方法(使用“剪切粘贴”)中的逻辑相同的逻辑。

笔记:此 VBA 代码的一个限制是它只会交换单元格中的值,而不会交换格式。 虽然您可以创建代码来交换值和格式,因为您无法将格式值保存在临时单元格中,但它需要更复杂的代码,使用工作表中的实际单元格来首先保存格式然后将其复制回原始单元格。

这段 VBA 代码应该放在哪里?

您必须将此代码放入 Visual Basic 编辑器中,该编辑器是 Excel 的编程后端。

请按照以下步骤执行此操作:

  1. 按住 ALT 键,然后按 F11 键。 这将打开 VB 编辑器。 您还可以单击“开发人员”选项卡,然后单击“Visual Basic”图标。
单击功能区中的 Visual Basic 图标
  1. 在打开的 VB 编辑器中,单击菜单中的“插入”选项,然后单击“模块”。 这将插入一个新模块,我们将在其中复制并粘贴上述 VBA 代码。
为工作簿插入模块
  1. 将上述 VBA 代码复制并粘贴到模块代码窗口中。
将 VBA 代码复制粘贴到模块代码窗口中
  1. 使用 Control + S 保存代码(或单击工具栏中的保存图标)。
保存代码

现在代码已位于 VB 编辑器中,您可以运行它来存储代码中的指定单元格。

如何运行此代码?

要运行 VBA 宏代码,请按照以下步骤操作:

  1. 按住 ALT 键,然后按 F8 键。 这将打开宏对话框。 或者,您也可以单击功能区中的“开发人员”选项卡,然后单击“宏”图标
  2. 选择要运行的宏的名称。
  3. 单击“运行”按钮。
单击宏对话框中的运行按钮

如果您想了解运行宏的其他一些方法,请单击此处阅读详细文章。

在 Excel 中使用 VBA 宏代码时需要记住以下一些重要事项:

  • 如果您想重用宏代码,则必须将该文件另存为启用宏的文件(具有 .XLSM 文件扩展名)
  • VBA 宏脚本所做的更改是不可逆的,因此请确保您有数据的备份副本,以备将来需要。

因此,您可以使用以下一些方法在 Excel 中快速交换单元格。

最简单、最快的方法是使用 Shift + 鼠标技术。 您还可以使用旧的和传统的复制粘贴方法,该方法适用于相邻和非相邻单元格。

如果您更喜欢 VBA 来执行此操作,那么您可以使用我在本文中提供的代码。

我希望本 Excel 教程对您有用。

推荐:在Linux中设置自动启动Docker容器的方法


发表评论