【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
留言分享你的想法!
avatar-img
蝦仁藥師_臨床輕鬆學的沙龍
28會員
222內容數
哈囉~!這裡主要在分享醫療知識,還有記錄下學習程式語言的各種筆記,偶爾穿插一些個人的淺見與有趣分享,希望大家都可以在這邊得到有用的資訊~!
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
還在煩惱平凡日常該如何增添一點小驚喜嗎?全家便利商店這次聯手超萌的馬來貘,推出黑白配色的馬來貘雪糕,不僅外觀吸睛,層次豐富的雙層口味更是讓人一口接一口!本文將帶你探索馬來貘雪糕的多種創意吃法,從簡單的豆漿燕麥碗、藍莓果昔,到大人系的奇亞籽布丁下午茶,讓可愛的馬來貘陪你度過每一餐,增添生活中的小確幸!
Thumbnail
還在煩惱平凡日常該如何增添一點小驚喜嗎?全家便利商店這次聯手超萌的馬來貘,推出黑白配色的馬來貘雪糕,不僅外觀吸睛,層次豐富的雙層口味更是讓人一口接一口!本文將帶你探索馬來貘雪糕的多種創意吃法,從簡單的豆漿燕麥碗、藍莓果昔,到大人系的奇亞籽布丁下午茶,讓可愛的馬來貘陪你度過每一餐,增添生活中的小確幸!
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工作排程器來自動化這個過程,讓我們在不知不覺中完成這項任務。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News