【VBA 自動化教學07】一鍵複製資料到主工作簿|集中彙整多檔資料超方便

更新 發佈閱讀 7 分鐘

在多檔案資料整合的情境中,將多個 Excel 檔案的內容集中複製到主工作簿是一項常見需求。透過 VBA,我們可以建立一個「一鍵複製」功能,自動開啟指定資料夾內的 Excel 檔案,並將其中的資料複製到主工作簿的指定工作表中,實現快速彙整

功能概述

這段 VBA 程式碼可實現以下功能:

  • 使用者選擇資料夾後,自動開啟其中所有 Excel 檔案
  • 複製每個檔案中指定工作表的資料(不含標題列)
  • 將資料依序貼到主工作簿的彙整工作表中
  • 自動避開重複貼上與空白列

VBA 程式碼範例

Sub CopyDataToMasterWorkbook()
Dim FolderPath As String
Dim FileName As String
Dim SourceWB As Workbook
Dim SourceWS As Worksheet
Dim TargetWS As Worksheet
Dim LastRow As Long

' 選擇資料夾
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "選擇資料來源資料夾"
.AllowMultiSelect = False
If .Show <> -1 Then Exit Sub
FolderPath = .SelectedItems(1) & "\"
End With

' 設定主工作簿的彙整工作表(假設為第一張)
Set TargetWS = ThisWorkbook.Sheets(1)
LastRow = TargetWS.Cells(TargetWS.Rows.Count, 1).End(xlUp).Row + 1

' 開始處理資料夾內的 Excel 檔案
FileName = Dir(FolderPath & "*.xls*")
Do While FileName <> ""
Set SourceWB = Workbooks.Open(FolderPath & FileName)
Set SourceWS = SourceWB.Sheets(1) ' 假設來源資料在第一張工作表

' 複製來源資料(從第 2 列開始,跳過標題)
With SourceWS
Dim SourceLastRow As Long
SourceLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
If SourceLastRow > 1 Then
.Range("A2:A" & SourceLastRow).EntireRow.Copy
TargetWS.Cells(LastRow, 1).PasteSpecial xlPasteValues
LastRow = TargetWS.Cells(TargetWS.Rows.Count, 1).End(xlUp).Row + 1
End If
End With

SourceWB.Close False
FileName = Dir
Loop

Application.CutCopyMode = False
MsgBox "所有資料已成功複製到主工作簿", vbInformation
End Sub

程式碼詳細解說(初學者導向)

這段程式碼的目的是將多個 Excel 檔案的資料複製到目前工作簿的第一張工作表中。以下是逐段說明:

首先,我們使用 FileDialog 讓使用者選擇資料來源資料夾,並儲存路徑至 FolderPath

接著設定 TargetWS 為主工作簿的第一張工作表,並使用 LastRow 找出目前資料的最後一列位置,作為貼上起點。

進入 Do While 迴圈後:

  • 使用 Dir 函數取得資料夾內的 Excel 檔案名稱。
  • 開啟每個檔案,並指定要複製的工作表(預設為第一張)。
  • 使用 End(xlUp) 找出來源資料的最後一列。
  • 從第 2 列開始複製資料(跳過標題列),並貼到主工作表的下一個空白列。
  • 關閉來源檔案,繼續處理下一個檔案。

最後使用 MsgBox 顯示複製完成的提示訊息。

操作步驟與使用方式

  1. 將程式碼貼入 Excel 的模組中(例如 Module1)
  2. 確保主工作簿已開啟並切換至彙整工作表
  3. 執行 CopyDataToMasterWorkbook 程式
  4. 選擇資料來源資料夾,程式將自動複製所有資料到主工作簿

應用場景與延伸建議

  • 每月報表集中彙整
  • 多人填寫表單資料集中處理
  • 教學作業或問卷結果整合

延伸功能建議:

  • 加入來源檔案名稱記錄(新增一欄記錄檔名)
  • 支援多張工作表或指定工作表名稱
  • 加入資料格式驗證與錯誤處理
  • 自動儲存主工作簿或匯出 PDF

常見問題 FAQ

Q1:是否可以複製特定工作表?

可以將 SourceWB.Sheets(1) 改為 SourceWB.Sheets("資料") 指定名稱。

Q2:是否可以複製多張工作表?

可以加入 For Each ws In SourceWB.Worksheets 迴圈,逐張處理。

Q3:是否可以記錄來源檔案名稱?

可以在貼上資料時於空白欄新增 FileName,方便追蹤資料來源。

結語與延伸閱讀

這段 VBA 程式碼提供了高效率的「一鍵複製資料到主工作簿」功能,適合用於報表整合、資料彙整與教學應用。後續你可以加入來源標記、格式驗證與自動儲存模組,打造完整的資料集中工具。

下一篇將介紹如何「一鍵建立目錄與超連結」,敬請期待【VBA 自動化教學】第 8 篇!!

留言
avatar-img
留言分享你的想法!
avatar-img
蝦仁藥師_臨床輕鬆學的沙龍
36會員
307內容數
哈囉~!這裡主要在分享醫療知識,還有記錄下學習程式語言的各種筆記,偶爾穿插一些個人的淺見與有趣分享,希望大家都可以在這邊得到有用的資訊~!
2025/11/06
在 Excel 中,OFFSET 函數能根據起始參照,向上/下/左/右偏移指定的行列數,並可設定回傳範圍的高度與寬度。它不會移動儲存格,而是回傳一個新的參照,適合用於 動態報表、滾動平均、資料自動擴展 等情境。 用途:回傳相對於起始點偏移的儲存格或範圍參照 動態取得儲存格/範圍!
Thumbnail
2025/11/06
在 Excel 中,OFFSET 函數能根據起始參照,向上/下/左/右偏移指定的行列數,並可設定回傳範圍的高度與寬度。它不會移動儲存格,而是回傳一個新的參照,適合用於 動態報表、滾動平均、資料自動擴展 等情境。 用途:回傳相對於起始點偏移的儲存格或範圍參照 動態取得儲存格/範圍!
Thumbnail
2025/11/06
在 Excel 中,MATCH 函數能回傳查詢值在範圍中的相對位置,而不是值本身。這讓它成為 INDEX+MATCH 查表組合的核心,能取代 VLOOKUP/HLOOKUP,提供更高的彈性與效能。用於定位資料列或欄的位置,建立動態報表、搜尋欄位名稱、搭配 INDEX 取值,是查找與定位的基礎工具。
Thumbnail
2025/11/06
在 Excel 中,MATCH 函數能回傳查詢值在範圍中的相對位置,而不是值本身。這讓它成為 INDEX+MATCH 查表組合的核心,能取代 VLOOKUP/HLOOKUP,提供更高的彈性與效能。用於定位資料列或欄的位置,建立動態報表、搜尋欄位名稱、搭配 INDEX 取值,是查找與定位的基礎工具。
Thumbnail
2025/11/06
在 Excel 中,LOOKUP 函數能根據查詢值,從單列或單欄(向量形式)或整個表格(陣列形式)中尋找最接近的匹配,並回傳對應的值。它適合用於分數等第查表、代碼轉換、或簡單的資料對照,但功能有限,現代 Excel 更推薦使用 XLOOKUP。
Thumbnail
2025/11/06
在 Excel 中,LOOKUP 函數能根據查詢值,從單列或單欄(向量形式)或整個表格(陣列形式)中尋找最接近的匹配,並回傳對應的值。它適合用於分數等第查表、代碼轉換、或簡單的資料對照,但功能有限,現代 Excel 更推薦使用 XLOOKUP。
Thumbnail
看更多
你可能也想看
Thumbnail
想開始學塔羅卻不知道要準備哪些工具?這篇整理塔羅新手必備好物清單,從塔羅牌、塔羅布到收納袋與香氛噴霧一次入手。趁蝦皮雙11優惠打造專屬占卜空間,還能加入蝦皮分潤計畫,用分享創造收入。
Thumbnail
想開始學塔羅卻不知道要準備哪些工具?這篇整理塔羅新手必備好物清單,從塔羅牌、塔羅布到收納袋與香氛噴霧一次入手。趁蝦皮雙11優惠打造專屬占卜空間,還能加入蝦皮分潤計畫,用分享創造收入。
Thumbnail
今天不只要分享蝦皮分潤計畫,也想分享最近到貨的魔法少年賈修扭蛋開箱,還有我的雙11購物清單,漫畫、文具、Switch2、後背包......雙11優惠真的超多,如果有什麼一直想買卻遲遲還沒下手的東西,最適合趁這個購物季趕緊下單!
Thumbnail
今天不只要分享蝦皮分潤計畫,也想分享最近到貨的魔法少年賈修扭蛋開箱,還有我的雙11購物清單,漫畫、文具、Switch2、後背包......雙11優惠真的超多,如果有什麼一直想買卻遲遲還沒下手的東西,最適合趁這個購物季趕緊下單!
Thumbnail
Excel SUMIF 函數教學:快速學會自動分組求和,大幅提升工作效率,減少人工計算錯誤。這篇文章將詳細介紹 SUMIF 函數的基本語法、實際應用及優點,讓你輕鬆應對大量數據處理。
Thumbnail
Excel SUMIF 函數教學:快速學會自動分組求和,大幅提升工作效率,減少人工計算錯誤。這篇文章將詳細介紹 SUMIF 函數的基本語法、實際應用及優點,讓你輕鬆應對大量數據處理。
Thumbnail
SUMIF 函數是數據分析的利器,幫助你輕鬆篩選並加總特定條件下的數據。無論你想了解某產品在特定期間內的銷售總額,或是分析特定客戶的購買金額,SUMIF 都能快速提供精確結果。這個工具適合自動化報表設定和即時數據分析,讓你不必手動篩選數據即可得到所需的答案。
Thumbnail
SUMIF 函數是數據分析的利器,幫助你輕鬆篩選並加總特定條件下的數據。無論你想了解某產品在特定期間內的銷售總額,或是分析特定客戶的購買金額,SUMIF 都能快速提供精確結果。這個工具適合自動化報表設定和即時數據分析,讓你不必手動篩選數據即可得到所需的答案。
Thumbnail
你是否曾經遇到這樣的情況?手上有一張表格,需要根據某個欄位進行分類,但表格又很繁雜,如果手動一個個查找,就需要花費大量時間才能找到想要的資料,這樣實在是太沒效率又容易眼花。 今天,我就來教你一個FILTER 函數快速分類技巧,讓你輕鬆掌握數據,節省時間。
Thumbnail
你是否曾經遇到這樣的情況?手上有一張表格,需要根據某個欄位進行分類,但表格又很繁雜,如果手動一個個查找,就需要花費大量時間才能找到想要的資料,這樣實在是太沒效率又容易眼花。 今天,我就來教你一個FILTER 函數快速分類技巧,讓你輕鬆掌握數據,節省時間。
Thumbnail
在職場上,無論是公司老闆、財務人員、業務人員,都需要隨時掌握公司的收支狀況。如果能夠快速、準確地計算出相關金額,將對工作效率和決策能力有很大幫助。 Excel中的SUM函數可以用來計算數值範圍的總和。在收支表中,我們可以利用SUM函數來快速計算收入、支出和結餘金額。
Thumbnail
在職場上,無論是公司老闆、財務人員、業務人員,都需要隨時掌握公司的收支狀況。如果能夠快速、準確地計算出相關金額,將對工作效率和決策能力有很大幫助。 Excel中的SUM函數可以用來計算數值範圍的總和。在收支表中,我們可以利用SUM函數來快速計算收入、支出和結餘金額。
Thumbnail
在工作中,我們經常會遇到需要處理會議、講座、活動等報銷的情況。對於報銷人員來說,快速查找報銷金額費用是一件非常重要的工作。今天要教大家一個Excel技巧,可以來快速查找會議、講座、活動報銷金額費用。這個技巧利用的是VLOOKUP函數。
Thumbnail
在工作中,我們經常會遇到需要處理會議、講座、活動等報銷的情況。對於報銷人員來說,快速查找報銷金額費用是一件非常重要的工作。今天要教大家一個Excel技巧,可以來快速查找會議、講座、活動報銷金額費用。這個技巧利用的是VLOOKUP函數。
Thumbnail
在臺灣,有部分企業會使用民國日期,因此如何在 Excel 中轉換民國和西元日期就顯得非常重要。 除了日期轉換之外,計算年紀、星期、生肖、星座也是常見的日期處理需求。這些需求看似簡單,但如果沒有 Excel 的幫助,可能會花費不少時間和精力。
Thumbnail
在臺灣,有部分企業會使用民國日期,因此如何在 Excel 中轉換民國和西元日期就顯得非常重要。 除了日期轉換之外,計算年紀、星期、生肖、星座也是常見的日期處理需求。這些需求看似簡單,但如果沒有 Excel 的幫助,可能會花費不少時間和精力。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News