“親,你干什么寫個(gè)東西,還搞得支離破碎的?”這是一句怨念……
舉一個(gè)例子,我有一個(gè)文件夾A,A里面有一百個(gè)doc文件,我要把這一百個(gè)doc文件合并成一個(gè)文件,怎么辦?
新建一個(gè)word文檔,把100個(gè)doc文件,一個(gè)個(gè)打開,一個(gè)個(gè)復(fù)制進(jìn)新建Word文檔里面,OK,可以,長(zhǎng)此以往下去,會(huì)得腱鞘炎的!
換一種方法,我們用office word帶的宏功能來(lái)處理。
步驟如下:
1. 在文件夾A里面,新建一個(gè)文件“合并.doc”,把“合并.doc”打開。
2. 按下alt+f11鍵,調(diào)出office word的宏窗口。絕大多數(shù)帶有VBA的軟件,調(diào)出VBA窗口的快捷方式都是alt+f11。我用的是word2010,可以在菜單欄——視圖——宏的窗口調(diào)出宏的對(duì)話框,但是按快捷鍵就可以了,要不然的話,你還得創(chuàng)建一個(gè)宏,才能把編輯窗口調(diào)出來(lái)。
3. 在Microsoft Visual Basic for Applications窗口里面,如圖上所示,在“ThisDocument”上右鍵單擊選擇“查看代碼”,然后會(huì)出現(xiàn)右側(cè)的“ThisDocument(代碼)”的面板。
4. 把下面的代碼,破折號(hào)里面的內(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. 點(diǎn)擊運(yùn)行,如下圖所示,稍等幾分鐘,等待運(yùn)行結(jié)束,文件夾A里面的100個(gè)doc文件的內(nèi)容就都會(huì)黏貼在當(dāng)前文件“合并.doc”,保存就可以啦,可能會(huì)出現(xiàn)一個(gè)對(duì)話框,默認(rèn)選擇“是”就可以。
這是最簡(jiǎn)單的方法了,但問(wèn)題也有,就是只能把doc文件合并,要是一個(gè)文件夾里面,既有doc文件,又有docx文件,又有txt文件,怎么辦呢?
把代碼里面的doc去掉?別瞎想了,合并出來(lái)的會(huì)是亂碼,所以我們就需要按部就班的了,還是假設(shè)有一個(gè)文件夾A,里面有100個(gè)混雜的文件,有doc格式的,有docx格式的,有txt格式的,兩個(gè)辦法,其一是doc、docx、txt類型的文件分別合并成合并.doc、合并.docx、合并.txt文件。
步驟如下:
1.在文件夾A里面新建一個(gè)文件“合并.doc”。按照上面所說(shuō)的方法,把如下的代碼復(fù)制到“ThisDocument(代碼)”面板上,運(yùn)行,就把文件夾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里面新建一個(gè)文件“合并.docx”。按照上面所說(shuō)的方法,把如下的代碼復(fù)制到“ThisDocument(代碼)”面板上,運(yùn)行,就把文件夾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里面新建一個(gè)文件“合并.txt”。按照上面所說(shuō)的方法,把如下的代碼復(fù)制到“ThisDocument(代碼)”面板上,運(yùn)行,就把文件夾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
——————————————
這三個(gè)代碼是不一樣的,別弄混了,同樣,以上三步驟也是docx文件、txt文件批量合并的方法。
用復(fù)制粘貼,把三個(gè)合并文件合并成一個(gè)大文件,也可以。
第二種方法是把不同格式的文件統(tǒng)一成一種格式的。這又涉及到另一個(gè)內(nèi)容,我也不想篇幅太長(zhǎng),內(nèi)容太分散,所以,請(qǐng)參閱“doc、docx、txt等格式文件批量轉(zhuǎn)換格式”。
兩篇結(jié)合處理。