Skip to main content

如何在 Excel 中複製多個選定範圍或區域?

Author: Xiaoyang Last Modified: 2025-08-06

在日常的 Excel 工作中,通常需要處理分散在大型工作表中的數據部分,而不是連續的數據塊。例如,您可能希望複製特定表格、列或非相鄰單元格,並將它們一次性轉移到另一個工作表中。然而,當您選擇多個非連續範圍並嘗試一起複製時,Excel 會顯示警告:“該命令不能用於多個選定範圍。” 這可能會令人沮喪,並且如果使用默認的 Excel 功能,分發或編譯分離的數據片段將變得繁瑣。那麼,有哪些有效的方法可以快速複製多個選定範圍呢?本指南將介紹幾種實用的解決方案,分析每種方法的價值、適用場景以及需要注意的事項,以幫助您更高效地處理這些常見的電子表格需求。


使用剪貼簿複製多個選定範圍

Excel 內建的剪貼簿經常被忽略,但它允許您彙總工作表中的多個內容片段。通過剪貼簿窗格,您可以逐一從不同位置複製內容,收集它們,然後將所有內容一次性粘貼到目標工作表的指定區域。這種方法最適合需要收集視覺內容、形狀或較小選定範圍的情況,但請注意,Excel 會將這些視為單獨的複製操作——因此在粘貼時格式和結構可能無法保持一致。以下是詳細步驟及重要注意事項:

1. 點擊 首頁 > a screenshot of the launch icon in the Clipboard group剪貼簿 群組中顯示 剪貼簿 窗格。(通常可以在 Excel 功能區的剪貼簿群組右下角找到。) 請參閱截圖:
a screenshot showing how to open the Clipboard pane in Exel

2. 逐一複製每個需要的範圍。每次複製後,所選內容將作為唯一的項目出現在左側的剪貼簿窗格中。對所有想要合併的範圍重複此過程。您可以查看剪貼簿列表,確保所有需要的範圍都已捕獲,並在粘貼前刪除任何不必要的副本。

3. 前往工作表並選擇要彙總複製範圍的目標儲存格。在剪貼簿窗格中,點擊「全部粘貼」以一次性粘貼所有收集的項目。

通過剪貼簿粘貼時,內容預設會垂直堆疊;因此,如果數據需要按照特定結構排列,您可能需要調整粘貼結果,特別是對於表格或列表。此外,剪貼簿最多保留 24 個項目——如果超出這個數量,最早的項目將被替換。始終確認您的粘貼區域清空,以免意外覆蓋重要數據。

輕鬆將多個選定範圍從多個工作表/工作簿合併到單一工作表/工作簿

如果您需要從眾多工作表或工作簿中收集或合併內容,跨工作簿進行手動複製粘貼可能既乏味又容易出錯,特別是在大規模數據聚合時更是耗時。借助 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(Visual Basic for Applications)自動化此過程可以節省大量時間並減少人為錯誤。該解決方案最適合高級用戶或需要重複、結構化任務的情況——例如每周複製相同的部分或重新格式化數據以進行報告。此方法提供了更大的靈活性,但在操作時需要小心,並注意粘貼位置,以避免意外覆蓋數據。

1. 按住 Ctrl 鍵並使用滑鼠選擇每個要收集的非相鄰範圍。

2. 同時按下 Alt + F11 打開 Microsoft Visual Basic for Applications (VBA) 編輯器窗口,然後點擊 插入 > 模組。將以下程式碼直接粘貼到模組窗口中:

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. 在 VBA 窗口中,點擊執行按鈕(或按 F5)來執行程式碼。

4. 將出現一個輸入框,提示您指定要粘貼合併範圍的左上角單元格。點擊 確定 確認後。
a screenshot of selecting a destination cell to place the copied ranges

注意事項與故障排除:此 VBA 程式碼將從您指定的目的地左上角開始排列複製的選定範圍。請注意潛在的數據覆蓋問題——如果目的地區域不是空白的,將顯示警告。如果您遇到“下標越界”或其他錯誤消息,請檢查您的選定範圍是否完全由單元格範圍組成。此方法不支持複製非單元格項目,如形狀或圖表,並且只會複製值和單元格格式,而不會複製物件。


快速從一個工作表中複製多個選定範圍

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. 首先點擊 Excel 功能區上的 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. 將出現提示詢問您是否要將設置保存為以後使用的方案。點擊 以保存或 以繼續而不保存。

完成後,來自各個工作表或工作簿的所有指定範圍將自動收集並放置在新的工作表或工作簿中,無需重複手動複製粘貼。這保留了數據結構,並極大地加快了分佈信息的彙總速度。


使用 Excel 公式複製並合併多個範圍

對於希望將非連續範圍的內容彙總到單一列表或摘要中,而又不想使用 VBA 或剪貼簿的用戶,Excel 公式非常有幫助。這特別適合處理結構化數據集,例如將幾個列或列表中的所有數據彙總到一個摘要區域中。以下是一個使用以下公式的實際示例:

1. 假設您想將 A1:A5C1:C5 範圍的數據合併到從 E1 單元格開始的單一列中。在 E1 中輸入以下公式:

=VSTACK(A1:A5, C1:C5)

2. 按 Enter 確認。兩個範圍中的所有值將在 E1 及下方堆疊出現。如果需要將多個非相鄰範圍中的所有數據排列到其他地方的摘要範圍中,只需修改 VSTACK 中的範圍。

注意:
  • VSTACK 函數僅適用於 Excel for Microsoft 365 Excel for Microsoft 365 for Mac Excel for the web。
  • 如果您的 Excel 版本不支持 VSTACK,您可以使用以下公式來複製範圍。以下是如何合併的示例 A1:A5C1:C5E1:E10:
    =IF(ROW(A1)<=5,INDEX(A$1:A$5,ROW(A1)),INDEX(C$1:C$5,ROW(A1)-5))
    E1 單元格中輸入此公式並按 Enter,然後向下拖動到 E10。這將把 A1:A5 的前 5 個值和 C1:C5 的下 5 個值放在單一列中。根據您的源數據調整範圍大小和引用。

注意事項:這些公式非常適合靜態數據摘要,但不會保留源範圍的格式、公式、圖表或合併單元格。它們最適合用於合併列表或簡單表格。如果您遇到 #REF! 等錯誤,請雙重檢查範圍邊界。

處理多個範圍時,始終雙重檢查您的選定範圍,並考慮在執行批量操作之前創建備份——特別是在繁忙的工作簿中運行 VBA 腳本或使用插件時。如果您遇到意外的粘貼結果,檢查源格式和目標區域的結構。 Kutools for Excel 設計用於簡化這些過程,提供穩定的工具來高效處理它們。選擇最適合您場景的方法:偶爾使用時,剪貼簿或 Excel 公式可能足夠;對於頻繁或大規模的任務,利用 VBA 或 Kutools 工具將帶來最大的便利性和準確性。


演示:從一個工作表中複製多個選定範圍

 

演示:從多個工作簿/工作表中複製多個選定範圍

 

Kutools for Excel:超過 300 種實用工具任您使用!永久免費享受AI功能!立即下載!

最佳 Office 辦公效率工具

🤖 Kutools AI Aide:徹底革新數據分析,基於智能執行|生成程式碼|創建自訂公式|分析數據並生成圖表|調用 Kutools Functions
熱門功能查找、選取項目的背景色或標記重複值 | 刪除空行 | 合併列或單元格且不丟失資料 | 四捨五入...
高級 LOOKUP多條件查找|多值查找|多表查找|模糊查找...
高級下拉列表快速創建下拉列表 | 關聯下拉列表 | 多選下拉列表 ...
列管理器添加指定數量的列 | 移動列 | 切換隱藏列的可見狀態 | 區域與列比較 ...
精選功能網格聚焦 | 設計檢視 | 增強編輯欄 | 工作簿及工作表管理器 | 資源庫 (自動文本) | 日期提取器 | 合併資料 | 加密/解密儲存格 | 按清單發送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體/傾斜/刪除線 ...)...
前15 大工具集12 款文本工具添加文本刪除特定字符,...)|50+ 種圖表 類型甘特圖,...)|40+ 實用 公式基於生日計算年齡,...)|19 款插入工具插入QR码按路徑插入圖片,...)|12 款轉換工具金額轉大寫匯率轉換,...)|7 款合併和分割工具高級合併行分割儲存格,...)| ...以及更多
使用 Kutools 支援你的語言——支援英語、西班牙語、德語、法語、中文及40 多種語言!

利用 Kutools for Excel 大幅提升你的 Excel 技能,感受前所未有的高效體驗。 Kutools for Excel 提供超過300 項高級功能,助你提升效率並保存時間。 點此查看你最需要的功能...


Office Tab 為 Office 帶來標籤式介面,讓你的工作更加輕鬆

  • 啟用 Word、Excel、PowerPoint 的標籤式編輯和閱讀功能
  • 在同一個視窗的標籤中打開和創建多個文件,而不是在新窗口中分開開啟。
  • 可提升你50% 的工作效率,每天為你大量減少滑鼠點擊次數!