跳至主要内容

如何在 Excel 中复制多个选定区域或范围?

Author: Xiaoyang Last Modified: 2025-05-07

例如,您有一个很大的工作表,现在只想复制一些选定的区域并分发到其他工作表。但是,当您选择多个区域并点击复制时,会弹出一个对话框提醒您“该命令不能用于多个选定区域。”在这种情况下,如何快速复制多个选定区域呢?这里有一些技巧可以帮助您完成此任务。


使用剪贴板复制多个选定区域

借助剪贴板,您可以一次性将所有选定的区域粘贴到另一个区域或工作表中。请按照以下步骤操作:

1. 点击 开始 > a screenshot of the launch icon in the Clipboard group 中的 剪贴板 组以显示 剪贴板 窗格.。参见截图:
a screenshot showing how to open the Clipboard pane in Exel

2. 然后逐一复制所需的选定区域。同时,复制的区域会出现在剪贴板 窗格中。 参见上面的截图:

3. 选择要粘贴所有复制区域的目标区域的第一个单元格,并在剪贴板 窗格中点击“全部粘贴”按钮。

然后,所有复制的区域都会被粘贴到指定的目标区域中。

轻松将来自多个工作表/工作簿的多个选定区域合并到单个工作表/工作簿中

将几十个来自不同工作簿的工作表合并到一个工作表可能会很繁琐。但使用 Kutools for Excel 的 合并(工作表和工作簿) 工具,只需几次点击即可完成!


a screenshot of easily ombine multiple selections from many worksheets/workbooks into single worksheet/workbook with Kutools for Excel

Kutools for Excel - 通过超过300个必备工具,让Excel功能大幅提升。永久免费享受AI功能!立即获取

使用 VBA 代码复制多个选定区域

通过 VBA 代码,您还可以复制多个选定区域并将它们粘贴到任何其他工作表中。

1. 按住 Ctrl 键并选择要使用的多个不相邻区域。

2. 同时按下 Alt + F11 键打开 Microsoft Visual Basic for Applications 窗口,点击 插入 > 模块,并在模块中输入以下代码:

Option Explicit
Sub CopyMultipleSelection()
Dim SelAreas() As Range
Dim PasteRange As Range
Dim UpperLeft As Range
Dim NumAreas As Integer, i As Integer
Dim TopRow As Long, LeftCol As Integer
Dim RowOffset As Long, ColOffset As Integer
Dim NonEmptyCellCount As Integer
' Exit if a range is not selected
If TypeName(Selection) < > "Range" Then
MsgBox "Select the range to be copied. A multiple selection is allowed."
Exit Sub
End If
' Store the areas as separate Range objects
NumAreas = Selection.Areas.Count
ReDim SelAreas(1 To NumAreas)
For i = 1 To NumAreas
Set SelAreas(i) = Selection.Areas(i)
Next
' Determine the upper left cell in the multiple selection
TopRow = ActiveSheet.Rows.Count
LeftCol = ActiveSheet.Columns.Count
For i = 1 To NumAreas
If SelAreas(i).Row < TopRow Then TopRow = SelAreas(i).Row
If SelAreas(i).Column < LeftCol Then LeftCol = SelAreas(i).Column
Next
Set UpperLeft = Cells(TopRow, LeftCol)
' Get the paste address
On Error Resume Next
Set PasteRange = Application.InputBox _
(Prompt:="Specify the upper left cell for the paste range:", _
Title:="Copy Mutliple Selection", _
Type:=8)
On Error GoTo 0
' Exit if canceled
If TypeName(PasteRange) < > "Range" Then Exit Sub
' Make sure only the upper left cell is used
Set PasteRange = PasteRange.Range("A1")
' Check paste range for existing data
NonEmptyCellCount = 0
For i = 1 To NumAreas
RowOffset = SelAreas(i).Row - TopRow
ColOffset = SelAreas(i).Column - LeftCol
NonEmptyCellCount = NonEmptyCellCount + _
Application.CountA(Range(PasteRange.Offset(RowOffset, ColOffset), _
PasteRange.Offset(RowOffset + SelAreas(i).Rows.Count - 1, _
ColOffset + SelAreas(i).Columns.Count - 1)))
Next i
' If paste range is not empty, warn user
If NonEmptyCellCount < > 0 Then _
If MsgBox("Overwrite existing data?", vbQuestion + vbYesNo, _
"Copy Multiple Selection") < > vbYes Then Exit Sub
' Copy and paste each area
For i = 1 To NumAreas
RowOffset = SelAreas(i).Row - TopRow
ColOffset = SelAreas(i).Column - LeftCol
SelAreas(i).Copy PasteRange.Offset(RowOffset, ColOffset)
Next i
End Sub

3. 然后点击运行按钮来运行代码。

4. 现在请在打开的 复制多个选定区域 对话框中指定一个单元格以粘贴这些区域,并点击 确定 按钮。参见截图:
a screenshot of selecting a destination cell to place the copied ranges


快速从一个工作表中复制多个选定区域

Kutools for Excel多区域复制工具可以帮助您轻松快速地从活动工作表中复制多个区域。请按照以下步骤操作:

Kutools for Excel - 通过超过300个必备工具,让Excel功能大幅提升。永久免费享受AI功能!立即获取

1. 逐一选择要使用的区域,无需按住 Ctrl 键,然后点击 Kutools > 复制区域。参见截图:
a screenshot of enabling and configuring the Copy Multiple Ranges feature of Kutools for Excel

2. 在复制多个区域对话框中,勾选粘贴特殊部分中的 全部 选项,并点击 确定 按钮。参见上面的截图:

注意:如果您想保持行高和列宽与原始区域一致,请在复制多个区域对话框中勾选 包括行高包括列宽 选项。

3. 并在以下提示框中指定一个单元格以粘贴这些区域,并点击 确定 按钮。
a screenshot of selecting a destination cell

现在,所有选定的区域都将粘贴到指定的单元格中,其行高和列宽与原始选定区域相同。

点击此处了解更多关于多区域复制工具的信息       

Kutools for Excel - 通过超过300个必备工具,让Excel功能大幅提升。永久免费享受AI功能!立即获取


从多个工作表/工作簿中复制多个区域

Kutools for Excel 提供了另一个合并工作表工具,可以轻松地从多个工作表或多个工作簿中复制多个区域。请按照以下步骤操作:

Kutools for Excel - 通过超过300个必备工具,让Excel功能大幅提升。永久免费享受AI功能!立即获取

1. 点击 Kutools Plus > 合并

2. 在打开的合并工作表 – 第 1 步(共 3 步)对话框中,请勾选 将多个工作簿中的工作表合并到一个工作表中 选项,并点击 下一步 按钮。
a screenshot of choosing the Combine multiple worksheets from workbook into one worksheet option in the Combine Worksheets wizard

3. 在合并工作表 – 第 2 步(共 3 步)对话框中,请执行以下操作:
a screenshot of selecting a workbook and the ranges in different worksheets you will copy
(1) 在 工作簿列表 部分中选择工作簿,然后点击每个工作表后面的 a screenshot of the selection button 浏览 按钮以指定每个工作表中的区域;
(2) 点击 添加 按钮以添加其他包含要复制区域的工作簿,并重复上述 (1) 来指定已添加工作簿中的区域。
(3) 点击 完成 按钮。

Kutools for Excel - 通过超过300个必备工具,让Excel功能大幅提升。永久免费享受AI功能!立即获取

4. 然后会出现一个 Kutools for Excel 对话框,询问是否保存合并方案。请根据需要点击 按钮。

至此,所有指定的来自多个工作表或工作簿的区域都已被复制并粘贴到一个新的工作簿中。


演示:从一个工作表中复制多个选定区域

 

演示:从多个工作簿/工作表中复制多个选定区域

 

Kutools for Excel:超过 300 种实用工具触手可及!永久免费享受 AI 功能!立即下载!

最佳办公效率工具

🤖 Kutools AI 助手:基于智能执行生成代码创建自定义公式分析数据并生成图表调用 Kutools 函数等功能,彻底改变数据分析方式…
热门功能查找、高亮或标记重复项 | 删除空行 | 合并不丢失数据的列或单元格 | 四舍五入 ...
高级 LOOKUP多条件 VLookup | 多值 VLookup | 多表查找 | 模糊查找 ....
高级下拉列表快速创建下拉列表 | 从属下拉列表 | 多选下拉列表 ....
列管理器添加指定数量的列 | 移动列 | 切换隐藏列的可见状态 | 比较区域和列 ...
精选功能网格聚焦 | 设计视图 | 增强编辑栏 | 工作簿与工作表管理器 | 资源库(自动文本) | 日期提取 | 合并数据 | 加密/解密单元格 | 按列表发送电子邮件 | 超级筛选 | 特殊筛选(筛选粗体/斜体/删除线...)...
排名前 15 的工具集12 种文本 工具添加文本删除特定字符等) | 50 多 种图表 类型甘特图等) | 40 多种实用 公式基于生日计算年龄等) | 19 种插入 工具插入二维码根据路径插入图片等) | 12 种转换 工具小写金额转大写汇率转换等) | 7 种合并与分割 工具高级合并行分割单元格等) | 还有更多...

使用 Kutools for Excel 提升您的 Excel 技能,体验前所未有的高效。 Kutools for Excel 提供超过 300 种高级功能来提高生产力并节省时间。 单击此处获取您最需要的功能...


Office Tab 将标签式界面引入 Office,让您的工作更加轻松

  • 在 Word、Excel、PowerPoint 中启用标签式编辑和阅读
  • 在同一窗口的新标签页中打开和创建多个文档,而不是在新窗口中进行操作。
  • 将您的生产力提升 50%,每天为您减少数百次鼠标点击!