【VBA 自動化教學02】一鍵合併多個 Excel 檔案資料|自動整合報表超省時

更新 發佈閱讀 8 分鐘

在日常報表處理或資料彙整工作中,經常需要將多個 Excel 檔案的內容合併到一個主工作簿中。若手動複製貼上,不僅耗時,也容易出錯。透過 VBA,我們可以建立一個「一鍵合併」功能,自動開啟資料夾內所有 Excel 檔案,並將指定工作表的資料整合到主檔案中。

功能概述

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

  • 使用者選擇資料夾後,自動開啟其中所有 Excel 檔案
  • 將每個檔案中指定工作表的資料複製到主工作簿的同一工作表中
  • 自動依序貼上,避免覆蓋原有資料
  • 顯示提示訊息,確認合併完成

VBA 程式碼範例

Sub MergeExcelFiles()
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) ' 假設要合併的是每個檔案的第一張工作表

' 複製來源工作表的資料(不含標題列)
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 檔案的資料合併到目前工作簿的第一張工作表中。以下是逐段說明:

首先,我們宣告了幾個變數:

  • FolderPath 儲存使用者選擇的資料夾路徑。
  • FileName 儲存目前正在處理的檔案名稱。
  • SourceWB 是來源工作簿(被開啟的檔案)。
  • SourceWS 是來源工作表(預設為第一張)。
  • TargetWS 是目標工作表(本工作簿的第一張工作表)。
  • LastRow 是目標工作表中目前最後一列的位置,用來決定貼上資料的位置。

接著,我們使用 FileDialog 讓使用者選擇資料夾,並將路徑存入 FolderPath

然後設定 TargetWS 為目前工作簿的第一張工作表,並計算目前資料的最後一列位置。

進入 Do While 迴圈後:

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

最後,顯示提示訊息,告知使用者合併完成。

操作步驟與使用方式

  1. 將程式碼貼入 Excel 的模組中(例如 Module1)
  2. 執行 MergeExcelFiles 程式
  3. 選擇要合併的資料夾
  4. 等待程式自動開啟並合併所有檔案資料

應用場景與延伸建議

  • 每月報表彙整(如業務、財務、庫存)
  • 教學範例資料整合
  • 多人填寫的 Excel 表單集中處理

延伸功能建議:

  • 加入標題列自動判斷與比對
  • 支援多工作表或指定工作表名稱
  • 自動記錄來源檔案名稱(可新增一欄記錄)
  • 加入錯誤處理與進度提示

常見問題 FAQ

Q1:是否可以合併多張工作表? 目前程式碼只處理每個檔案的第一張工作表,若需合併多張,可加入迴圈處理 Worksheets 集合。

Q2:如何避免重複貼上標題列? 程式碼已設定從第 2 列開始複製,跳過標題列。若來源格式不一致,建議加入標題比對邏輯。

Q3:是否可以合併 .csv 或其他格式? 此程式碼僅處理 Excel 格式(.xls.xlsx.xlsm),若需處理 .csv,需改用 OpenText 方法。

結語與延伸閱讀

這段 VBA 程式碼提供了高效率的「一鍵合併 Excel 資料」功能,適合用於報表整合、資料彙整與教學應用。後續你可以進一步加入格式比對、資料驗證或自動分類模組,打造更完整的 Excel 自動化工具。

下一篇將介紹如何「一鍵匯出 Excel 工作表為 PDF」,敬請期待【VBA 自動化教學】第 3 篇。

留言
avatar-img
蝦仁藥師_臨床輕鬆學的沙龍
65會員
340內容數
哈囉~!這裡主要在分享醫療知識,還有記錄下學習程式語言的各種筆記,偶爾穿插一些個人的淺見與有趣分享,希望大家都可以在這邊得到有用的資訊~!
2025/10/14
在日常工作中,若需開啟多個 Excel 檔案進行比對、整合或檢查,手動操作既耗時又容易遺漏。透過 VBA,我們可以建立一個「一鍵開啟」功能,讓使用者選擇資料夾後,自動載入其中所有 Excel 檔案,大幅提升效率。 本文將完整教學如何撰寫這段 VBA 程式碼,並逐段解說其邏輯與應用場景。
Thumbnail
2025/10/14
在日常工作中,若需開啟多個 Excel 檔案進行比對、整合或檢查,手動操作既耗時又容易遺漏。透過 VBA,我們可以建立一個「一鍵開啟」功能,讓使用者選擇資料夾後,自動載入其中所有 Excel 檔案,大幅提升效率。 本文將完整教學如何撰寫這段 VBA 程式碼,並逐段解說其邏輯與應用場景。
Thumbnail
2025/10/13
在 Excel 中處理欄位拆解、資料解析或格式標準化時,常需要擷取某個特定字元或標記「之前」的文字內容。TEXTBEFORE 函數能依指定分隔符,擷取其前方的文字,適合用於報表設計、資料清理、欄位標準化與自動化解析等場景。它是 Excel 365 中的動態陣列函數,與 TEXTAFTER 搭配使用。
Thumbnail
2025/10/13
在 Excel 中處理欄位拆解、資料解析或格式標準化時,常需要擷取某個特定字元或標記「之前」的文字內容。TEXTBEFORE 函數能依指定分隔符,擷取其前方的文字,適合用於報表設計、資料清理、欄位標準化與自動化解析等場景。它是 Excel 365 中的動態陣列函數,與 TEXTAFTER 搭配使用。
Thumbnail
2025/10/13
在 Excel 中處理欄位拆解、資料解析或格式標準化時,常需要擷取某個特定字元或標記之後的文字內容。TEXTAFTER 函數能依指定分隔符,擷取其「之後」的文字,適合用於報表設計、資料清理、欄位標準化與自動化解析等場景。它是 Excel 365 中的動態陣列函數,與 TEXTBEFORE 搭配使用。
Thumbnail
2025/10/13
在 Excel 中處理欄位拆解、資料解析或格式標準化時,常需要擷取某個特定字元或標記之後的文字內容。TEXTAFTER 函數能依指定分隔符,擷取其「之後」的文字,適合用於報表設計、資料清理、欄位標準化與自動化解析等場景。它是 Excel 365 中的動態陣列函數,與 TEXTBEFORE 搭配使用。
Thumbnail
看更多
你可能也想看
Thumbnail
債券投資,不只是高資產族群的遊戲 在傳統的投資觀念中,海外債券(Overseas Bonds)常被貼上「高資產族群專屬」的標籤。過去動輒 1 萬甚至 10 萬美元的最低申購門檻,讓許多想尋求穩定配息的小資族望而卻步。 然而,在股市波動劇烈的環境下,尋求穩定的美元現金流與被動收入成為許多投資人
Thumbnail
債券投資,不只是高資產族群的遊戲 在傳統的投資觀念中,海外債券(Overseas Bonds)常被貼上「高資產族群專屬」的標籤。過去動輒 1 萬甚至 10 萬美元的最低申購門檻,讓許多想尋求穩定配息的小資族望而卻步。 然而,在股市波動劇烈的環境下,尋求穩定的美元現金流與被動收入成為許多投資人
Thumbnail
透過川普的近期債券交易揭露,探討債券作為資產配置中「穩定磐石」的重要性。文章分析降息對債券的潛在影響,以及股神巴菲特的操作策略。並介紹玉山證券「小額債」平臺,如何讓小資族也能低門檻參與海外債券市場,實現「低門檻、低波動、固定收益」的務實投資方式。
Thumbnail
透過川普的近期債券交易揭露,探討債券作為資產配置中「穩定磐石」的重要性。文章分析降息對債券的潛在影響,以及股神巴菲特的操作策略。並介紹玉山證券「小額債」平臺,如何讓小資族也能低門檻參與海外債券市場,實現「低門檻、低波動、固定收益」的務實投資方式。
Thumbnail
解析「債券」如何成為資產配置中的穩定錨,提供低風險高回報的投資選項。 藉由玉山證券的低門檻債券服務,投資者可輕鬆入手,平衡風險並穩定財務。
Thumbnail
解析「債券」如何成為資產配置中的穩定錨,提供低風險高回報的投資選項。 藉由玉山證券的低門檻債券服務,投資者可輕鬆入手,平衡風險並穩定財務。
Thumbnail
相較於波動較大的股票,債券能提供固定現金流,而玉山證券推出的小額債,更以1000 美元的低門檻,讓學生與新手也能參與全球優質企業債投資。玉山E-Trader平台即時報價、條件式篩選與清楚的交易流程等特色,大幅降低投資難度,對於希望分散風險、建立穩定現金流的人來說,玉山小額債是一個值得嘗試的理財起點。
Thumbnail
相較於波動較大的股票,債券能提供固定現金流,而玉山證券推出的小額債,更以1000 美元的低門檻,讓學生與新手也能參與全球優質企業債投資。玉山E-Trader平台即時報價、條件式篩選與清楚的交易流程等特色,大幅降低投資難度,對於希望分散風險、建立穩定現金流的人來說,玉山小額債是一個值得嘗試的理財起點。
Thumbnail
只要會用鍵盤的人,人人都會做EXCEL表格。但是,如果你仔細研究,你或許會發現,工作是否有效率其實可以從一張EXCEL表裡看出來。這篇文章分享幾幾簡單的檢查方法與製作技巧。
Thumbnail
只要會用鍵盤的人,人人都會做EXCEL表格。但是,如果你仔細研究,你或許會發現,工作是否有效率其實可以從一張EXCEL表裡看出來。這篇文章分享幾幾簡單的檢查方法與製作技巧。
Thumbnail
這篇文章介紹如何使用VBA程式碼將【包含備註】的Excel檔案轉換為PDF檔。在研究這個問題時,作者花了3個小時多的時間,但後來發現了一個更簡單的方法,這讓作者感到震驚和懷疑人生。最後,作者強調使用他人的智慧來提高自己的能力。文章提供了相關參考文獻和圖片。
Thumbnail
這篇文章介紹如何使用VBA程式碼將【包含備註】的Excel檔案轉換為PDF檔。在研究這個問題時,作者花了3個小時多的時間,但後來發現了一個更簡單的方法,這讓作者感到震驚和懷疑人生。最後,作者強調使用他人的智慧來提高自己的能力。文章提供了相關參考文獻和圖片。
Thumbnail
本文介紹了將獨立的Excel檔案轉換為PDF檔的方法,並提供了相關連結和資源,包括Excel教學、VBA自動轉存檔案等。文章中還包含了南宋詞人辛棄疾詞和張忠謀的引言,讓讀者在解決問題的同時得到一些靈感和鼓勵。
Thumbnail
本文介紹了將獨立的Excel檔案轉換為PDF檔的方法,並提供了相關連結和資源,包括Excel教學、VBA自動轉存檔案等。文章中還包含了南宋詞人辛棄疾詞和張忠謀的引言,讓讀者在解決問題的同時得到一些靈感和鼓勵。
Thumbnail
Excel是一個強大的電子試算表軟體,不僅適用於數據分析和報表製作,還能通過VBA(Visual Basic for Applications)進行自動化和擴展功能。要使用這些進階功能,首先需要啟用開發人員選項。以下將詳細介紹在Windows和Mac版本的Excel中如何啟用這個選項。 在Wi
Thumbnail
Excel是一個強大的電子試算表軟體,不僅適用於數據分析和報表製作,還能通過VBA(Visual Basic for Applications)進行自動化和擴展功能。要使用這些進階功能,首先需要啟用開發人員選項。以下將詳細介紹在Windows和Mac版本的Excel中如何啟用這個選項。 在Wi
Thumbnail
Excel 是許多人日常工作中不可或缺的工具之一,它提供了許多便利的功能來幫助我們處理數據和表格。其中,自動填入編號是一個常見的需求,例如填入連續的序列編號或特定的數字序列。在本文中,我們將介紹一個快速且方便的方法來實現這一目標,即使用 ALT 快捷鍵組合。
Thumbnail
Excel 是許多人日常工作中不可或缺的工具之一,它提供了許多便利的功能來幫助我們處理數據和表格。其中,自動填入編號是一個常見的需求,例如填入連續的序列編號或特定的數字序列。在本文中,我們將介紹一個快速且方便的方法來實現這一目標,即使用 ALT 快捷鍵組合。
Thumbnail
分頁是EXCEL很棒的一個功能,他可以將不同類型的資料在同一個檔案裏面分開存放,就不需要產出一拖拉庫的檔案。 但是隨著時間或是類型越來越多,分頁數量逐漸上升,分頁要尋找可能就不是一件非常容易的事情。 就要一直點...一直點...一直點.... 上面的範例只是52週的資料而已,有些公司的分頁
Thumbnail
分頁是EXCEL很棒的一個功能,他可以將不同類型的資料在同一個檔案裏面分開存放,就不需要產出一拖拉庫的檔案。 但是隨著時間或是類型越來越多,分頁數量逐漸上升,分頁要尋找可能就不是一件非常容易的事情。 就要一直點...一直點...一直點.... 上面的範例只是52週的資料而已,有些公司的分頁
Thumbnail
在工作中,我們經常需要處理各種報表,而其中一項任務就是每天手動更新報表。這可能是一個繁瑣且容易被遺忘的工作,但有幸的是,我們可以利用VBA(Visual Basic for Applications)和Windows工作排程器來自動化這個過程,讓我們在不知不覺中完成這項任務。
Thumbnail
在工作中,我們經常需要處理各種報表,而其中一項任務就是每天手動更新報表。這可能是一個繁瑣且容易被遺忘的工作,但有幸的是,我們可以利用VBA(Visual Basic for Applications)和Windows工作排程器來自動化這個過程,讓我們在不知不覺中完成這項任務。
Thumbnail
為什麼要比較Excel 工作表(Worksheet) 工作中,常常會儲存多個同一目的,但不同時間的工作。或者,有時要檢查兩個人做的EXCEL工作表,是否有所不同。當然,若工作表很小,肉眼看是最快的,但是,如果是庫存的大量資料如1萬筆以上的財務資訊等,這時靠肉眼看,速度實在是太慢了,而且也容易出錯。
Thumbnail
為什麼要比較Excel 工作表(Worksheet) 工作中,常常會儲存多個同一目的,但不同時間的工作。或者,有時要檢查兩個人做的EXCEL工作表,是否有所不同。當然,若工作表很小,肉眼看是最快的,但是,如果是庫存的大量資料如1萬筆以上的財務資訊等,這時靠肉眼看,速度實在是太慢了,而且也容易出錯。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News