“親,你干什么寫個東西,還搞得支離破碎的?”這是一句怨念……
舉一個例子,我有一個文件夾A,A里面有一百個doc文件,我要把這一百個doc文件合并成一個文件,怎么辦?
新建一個word文檔,把100個doc文件,一個個打開,一個個復(fù)制進(jìn)新建Word文檔里面,OK,可以,長此以往下去,會得腱鞘炎的!
換一種方法,我們用office word帶的宏功能來處理。
步驟如下:
1. 在文件夾A里面,新建一個文件“合并.doc”,把“合并.doc”打開。
2. 按下alt+f11鍵,調(diào)出office word的宏窗口。絕大多數(shù)帶有VBA的軟件,調(diào)出VBA窗口的快捷方式都是alt+f11。我用的是word2010,可以在菜單欄——視圖——宏的窗口調(diào)出宏的對話框,但是按快捷鍵就可以了,要不然的話,你還得創(chuàng)建一個宏,才能把編輯窗口調(diào)出來。
3. 在Microsoft Visual Basic for Applications窗口里面,如圖上所示,在“ThisDocument”上右鍵單擊選擇“查看代碼”,然后會出現(xiàn)右側(cè)的“ThisDocument(代碼)”的面板。

4. 把下面的代碼,破折號里面的內(nèi)容復(fù)制到面板里面,如圖所示。
————————————————
Sub 合并文檔()
Application.ScreenUpdating = False
MyPath = ActiveDocument.Path
MyName = Dir(MyPath & "\" & "*.doc")
i = 0
Do While MyName <> ""
If MyName <> ActiveDocument.Name Then
Set wb = Documents.Open(MyPath & "\" & MyName)
Selection.WholeStory
Selection.Copy
Windows(1).Activate
Selection.EndKey Unit:=wdLine
Selection.TypeParagraph
Selection.Paste
i = i + 1
wb.Close False
End If
MyName = Dir
Loop
Application.ScreenUpdating = True
End Sub
——————————————

5. 點擊運行,如下圖所示,稍等幾分鐘,等待運行結(jié)束,文件夾A里面的100個doc文件的內(nèi)容就都會黏貼在當(dāng)前文件“合并.doc”,保存就可以啦,可能會出現(xiàn)一個對話框,默認(rèn)選擇“是”就可以。

這是最簡單的方法了,但問題也有,就是只能把doc文件合并,要是一個文件夾里面,既有doc文件,又有docx文件,又有txt文件,怎么辦呢?
把代碼里面的doc去掉?別瞎想了,合并出來的會是亂碼,所以我們就需要按部就班的了,還是假設(shè)有一個文件夾A,里面有100個混雜的文件,有doc格式的,有docx格式的,有txt格式的,兩個辦法,其一是doc、docx、txt類型的文件分別合并成合并.doc、合并.docx、合并.txt文件。
步驟如下:
1.在文件夾A里面新建一個文件“合并.doc”。按照上面所說的方法,把如下的代碼復(fù)制到“ThisDocument(代碼)”面板上,運行,就把文件夾A里面所有的doc文件都復(fù)制到“合并.doc”文件里面了,保存。
————————————————
Sub 合并文檔()
Application.ScreenUpdating = False
MyPath = ActiveDocument.Path
MyName = Dir(MyPath & "\" & "*.doc")
i = 0
Do While MyName <> ""
If MyName <> ActiveDocument.Name Then
Set wb = Documents.Open(MyPath & "\" & MyName)
Selection.WholeStory
Selection.Copy
Windows(1).Activate
Selection.EndKey Unit:=wdLine
Selection.TypeParagraph
Selection.Paste
i = i + 1
wb.Close False
End If
MyName = Dir
Loop
Application.ScreenUpdating = True
End Sub
——————————————
2.在文件夾A里面新建一個文件“合并.docx”。按照上面所說的方法,把如下的代碼復(fù)制到“ThisDocument(代碼)”面板上,運行,就把文件夾A里面所有的docx文件都復(fù)制到“合并.docx”文件里面了,保存。
————————————————
Sub 合并文檔()
Application.ScreenUpdating = False
MyPath = ActiveDocument.Path
MyName = Dir(MyPath & "\" & "*.docx")
i = 0
Do While MyName <> ""
If MyName <> ActiveDocument.Name Then
Set wb = Documents.Open(MyPath & "\" & MyName)
Selection.WholeStory
Selection.Copy
Windows(1).Activate
Selection.EndKey Unit:=wdLine
Selection.TypeParagraph
Selection.Paste
i = i + 1
wb.Close False
End If
MyName = Dir
Loop
Application.ScreenUpdating = True
End Sub
——————————————
3.在文件夾A里面新建一個文件“合并.txt”。按照上面所說的方法,把如下的代碼復(fù)制到“ThisDocument(代碼)”面板上,運行,就把文件夾A里面所有的txt文件都復(fù)制到“合并.txt”文件里面了,保存。
————————————————
Sub 合并文檔()
Application.ScreenUpdating = False
MyPath = ActiveDocument.Path
MyName = Dir(MyPath & "\" & "*.txt")
i = 0
Do While MyName <> ""
If MyName <> ActiveDocument.Name Then
Set wb = Documents.Open(MyPath & "\" & MyName)
Selection.WholeStory
Selection.Copy
Windows(1).Activate
Selection.EndKey Unit:=wdLine
Selection.TypeParagraph
Selection.Paste
i = i + 1
wb.Close False
End If
MyName = Dir
Loop
Application.ScreenUpdating = True
End Sub
——————————————
這三個代碼是不一樣的,別弄混了,同樣,以上三步驟也是docx文件、txt文件批量合并的方法。
用復(fù)制粘貼,把三個合并文件合并成一個大文件,也可以。
第二種方法是把不同格式的文件統(tǒng)一成一種格式的。這又涉及到另一個內(nèi)容,我也不想篇幅太長,內(nèi)容太分散,所以,請參閱“doc、docx、txt等格式文件批量轉(zhuǎn)換格式”。
兩篇結(jié)合處理。