合并多个WORD法律文档解决之道

22222222.png
在律师工作中会出现这样的场景:需要把多个word文档合并为一个,例如将主合同与从合同及其附件合并为一个文档,或者将检索的多个案例文档合并为一以方便全文关键词检索,快速找到相关可供参考案例。那么,除了传统手工复制粘贴之外,还能如何实现呢?

利用插入对象功能合并文档

如果在需合并的文档数量不多,但手动复制又稍显繁琐的情况下,可考虑使用Word自带的插入对象功能。操作如下:

  1. 将需要插入的对象按一定规则排序(如按名称、按时间,或者按照你的顺序要求重命名为1、2、3……的顺序),并放在同一文件夹下;
  2. 打开第一个文档(如命名为“1”的文档),选择“插入”→“对象”→“文件中的文字”,按住ctrl键依次选中需要合并的其他文档,进行插入操作;
  3. 等待合并完成后获得一个新的合并文档,为了保持原独立文档原貌,建议对此合并文档进行另存操作。
    该种方法优势在于无需借助第三方工具或代码,简单易操作,弊端在于每次插入文档对象数量不能超过100个,超过100个部分无法插入,文档数量较多的情况下,需反复多次操作,才能实现目的。

利用VBA功能实现自动合并文档

在文档超过100个的情况下,利用插入对象方法难免捉襟见肘,因此可考虑VBA功能实现自动合并。操作如下:

  1. 同前述,将需要插入的对象按一定规则排序(如按名称、按时间,或者按照你的顺序要求重命名为1、2、3……的顺序),并放在同一文件夹下;
  2. 打开第一个文档(如命名为“1”的文档),按“Alt+F11”,打开 Microsoft Visual Basic for Application 窗口;
  3. 在Microsoft Visual Basic for Application窗口中选择“插入”→“模块”,并将如下代码完整复制到模块窗口中;

    Sub MergeDocuments()
    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

  4. 在Microsoft Visual Basic for Application窗口中单击工具栏上的运行按钮,即可开始实现当前文件夹下所有文档的自动合并,在运行过程中不要进行其他操作,以免程序无响应;

  5. 运行完成后,文档1已变为合并文档,同样建议进行另存操作。

该种方法的优点除了在于能处理超过100个文档外,还在于当第一次进行前述操作后,会在Word系统里保存上述VBA功能模块,可供后续无限使用,该模块的具体位置位于“开发”→“宏”→“MergeDocuments”,为方便后续操作,可以将“宏”固定在Word左上方自定义快捷工具栏里,方便随时调取VBA模块功能操作。

注意事项

以上方法均经亲测有效,但为了防止合并操作可能出现的不可抗力因素对原文档的破坏,在进行任何操作前,均建议将原始文档做一备份,以防不测。

嘤其鸣矣,求其友声