如何實現多個Word文件的自動合併

大家好,我們今日繼續講解VBA程式碼解決方案的第147講內容:如何實現多個文件的合併。這一講是VBA程式碼解決方案的最後一講內容了,其實關於WORD中利用VBA的內容還很多,餘下的內容就不再這裡講了。這套方案基本上覆蓋了整個VBA相關內容的大多數的知識點,VBA作為一種寄生的語言畢竟有著自己的侷限性,如果能熟練掌握本套方案的內容,對於工作中遇到的問題基本上能做到得心應手,餘下的就是自己提高的過程了。好了,還是回到我們這講的內容,如果合併多個文件。

日常辦公中,合併文件是經常需要處理的,當檔案數量較少、檔案體積較小時可以輕鬆應對,但當檔案數量較多、檔案體積較大時,操作起來就要花費大量的時間和精力,而且很容易出錯。比如,每年年末,公司所有員工都要交工作總結,人事部門需要將某部門的總結匯總到一個檔案裡,以便向總經理彙報。這時就可以藉助VBA實現檔案的批量操作,大大提高辦公效率和準確性。

那麼如何利用VBA進行文件的合併呢?首先,我們把所有需要合併的檔案都在同一個資料夾中;所有需要合併檔案的檔名要有一定的規律,最好是連續的數字。當然如果不是連續的數字也是可以處理的,這個問題朋友們可以自己去考慮,這裡我講的是基本的操作。

我這裡有幾個檔案,放在桌面的一個名為"新建資料夾"的資料夾下面,裡面有3個文件,還有一個文件是用來放合併後的文件的,如圖:

這個時候的程式該如何寫呢:看我下面的程式碼:

Sub mynzHB()

filedir = "C:/Users/nl/Desktop/新建資料夾" '指定檔案存放路徑

Application.ScreenUpdating = False '關閉螢幕重新整理提高速度

Dim filenum As Integer '要合併的檔案數

Dim a As Integer '定義數字變數

Dim FileName1 As String '合併後的檔名

Dim FileName2 As String '定義要合併的檔名變數

filenum = 3

FileName1 = "合併.docx"

a = 1

Do While a <= filenum '由於我是事先知道要合併的數目,所以這裡的條件就簡單多了

FileName2 = CStr(a) & ".docx" '檔名的處理

ChangeFileOpenDirectory filedir '路徑指示

Documents.Open FileName:=FileName2 '開啟要合併的檔案

Selection.WholeStory '全選

Selection.Copy '複製

ActiveDocument.Close '關閉檔案

Documents.Open FileName:=FileName1 '開啟合併後的檔案

Selection.EndKey Unit:=wdStory '將游標移到檔案尾部

Selection.TypeParagraph '插入新段落,避免合併混亂

Selection.PasteAndFormat (wdPasteDefault) '貼上

ActiveDocument.Save '儲存檔案

ActiveDocument.Close '關閉檔案

a = a 1 '變數加1,然後處理下個檔案

Loop

MsgBox "任務完成,共有" & a - 1 & "個文件被合併!" & "請檢視檔案"

Documents.Open FileName:=FileName1 '開啟合併後的檔案

End Sub

程式碼截圖;

由於必要的解釋我在程式碼中都加了註釋,就不再解釋程式碼了,只看看執行後的"合併"檔案;

下面看一看執行過程的錄屏:

重播
播放
00:00 / 00:00 正在直播
00:00
進入全屏

50

點選按住可拖動視訊

今日內容迴向:

1 如何合併幾個文件到相同的檔案?

2 在本節的例項中,我講了最為簡單的方法,工作中如果是複雜的條件,比如文件的命名不是很規範,你有解決的思路嗎?