美文网首页
office word批处理入门(一)doc文档批量合并

office word批处理入门(一)doc文档批量合并

作者: 铁血阿郎 | 来源:发表于2015-12-21 21:55 被阅读2599次

    “亲,你干什么写个东西,还搞得支离破碎的?”这是一句怨念……

    举一个例子,我有一个文件夹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等格式文件批量转换格式”。

    两篇结合处理。

    相关文章

      网友评论

          本文标题:office word批处理入门(一)doc文档批量合并

          本文链接:https://www.haomeiwen.com/subject/puimhttx.html