“亲,你干什么写个东西,还搞得支离破碎的?”这是一句怨念……
举一个例子,我有一个文件夹A,A里面有一百个doc文件,我要把这一百个doc文件合并成一个文件,怎么办?
新建一个word文档,把100个doc文件,一个个打开,一个个复制进新建Word文档里面,OK,可以,长此以往下去,会得腱鞘炎的!
换一种方法,我们用office word带的宏功能来处理。
步骤如下:
1. 在文件夹A里面,新建一个文件“合并.doc”,把“合并.doc”打开。
2. 按下alt+f11键,调出office word的宏窗口。绝大多数带有VBA的软件,调出VBA窗口的快捷方式都是alt+f11。我用的是word2010,可以在菜单栏——视图——宏的窗口调出宏的对话框,但是按快捷键就可以了,要不然的话,你还得创建一个宏,才能把编辑窗口调出来。
3. 在Microsoft Visual Basic for Applications窗口里面,如图上所示,在“ThisDocument”上右键单击选择“查看代码”,然后会出现右侧的“ThisDocument(代码)”的面板。
4. 把下面的代码,破折号里面的内容复制到面板里面,如图所示。
————————————————
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. 点击运行,如下图所示,稍等几分钟,等待运行结束,文件夹A里面的100个doc文件的内容就都会黏贴在当前文件“合并.doc”,保存就可以啦,可能会出现一个对话框,默认选择“是”就可以。
这是最简单的方法了,但问题也有,就是只能把doc文件合并,要是一个文件夹里面,既有doc文件,又有docx文件,又有txt文件,怎么办呢?
把代码里面的doc去掉?别瞎想了,合并出来的会是乱码,所以我们就需要按部就班的了,还是假设有一个文件夹A,里面有100个混杂的文件,有doc格式的,有docx格式的,有txt格式的,两个办法,其一是doc、docx、txt类型的文件分别合并成合并.doc、合并.docx、合并.txt文件。
步骤如下:
1.在文件夹A里面新建一个文件“合并.doc”。按照上面所说的方法,把如下的代码复制到“ThisDocument(代码)”面板上,运行,就把文件夹A里面所有的doc文件都复制到“合并.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”。按照上面所说的方法,把如下的代码复制到“ThisDocument(代码)”面板上,运行,就把文件夹A里面所有的docx文件都复制到“合并.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”。按照上面所说的方法,把如下的代码复制到“ThisDocument(代码)”面板上,运行,就把文件夹A里面所有的txt文件都复制到“合并.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文件批量合并的方法。
用复制粘贴,把三个合并文件合并成一个大文件,也可以。
第二种方法是把不同格式的文件统一成一种格式的。这又涉及到另一个内容,我也不想篇幅太长,内容太分散,所以,请参阅“doc、docx、txt等格式文件批量转换格式”。
两篇结合处理。