如何實現多個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
程式碼截圖;
由於必要的解釋我在程式碼中都加了註釋,就不再解釋程式碼了,只看看執行後的"合併"檔案;
下面看一看執行過程的錄屏:
50
今日內容迴向:
1 如何合併幾個文件到相同的檔案?
2 在本節的例項中,我講了最為簡單的方法,工作中如果是複雜的條件,比如文件的命名不是很規範,你有解決的思路嗎?