word每页拆分成一个文档(Word按页拆分成多个独立文档)

今天遇到了这样的一个Word文档问题:

如何将一个Word文档按页拆分成多个独立文档?

假设我们的这个Word文档内含有1000页,然后将这1000页文档按页批量拆分成1000个单独的Word文档。如果在页数数量少的情况下,我们完全可以通过手动一个一个新建Word文档,然后将总文档中的每页内容复制粘贴到新建的一个一个的Word文档中。但是如果页数数据量大的话,再这样无技巧的傻傻的工作,那效率就太低了。

下面小编就通过模拟一个简单的例子来说明这个问题。

如下图所示:

我们将含有2页的名称为“Excel情报局”的总Word文档放在一个新建的文件夹内。

这个名称为“Excel情报局”的Word文档中的2页内容如下图所示:第一页为一首词“将进酒”,第二页同样为一首词“水调歌头”。

最终实现的效果是:

将名称为“Excel情报局”的Word文档中的2页内容按页批量拆分成2个单独的文档,两首词分别放在两个单独的文档中,如下图所示:

解决方案|解题步骤

在文件夹内打开那个需要按页拆分的文档(本例中它的文件名叫做“Excel情报局”)

键入ALT+F11打开VBA编辑器(或者点击“开发工具”选项卡,点击"visual basic,进入VBA编辑器)。

点击“插入-模块”,将下面一段VBA代码复制粘贴到该新建的模块中。

代码如下:

Option Explicit


Sub SplitPagesAsDocuments()


Dim oSrcDoc As Document, oNewDoc As Document
Dim strSrcName As String, strNewName As String
    Dim oRange As Range
    Dim nIndex As Integer
    Dim fso As Object


    Set fso = CreateObject("Scripting.FileSystemObject")
    Set oSrcDoc = ActiveDocument
    Set oRange = oSrcDoc.Content


    oRange.Collapse wdCollapseStart
    oRange.Select


    For nIndex = 1 To ActiveDocument.Content.Information(wdNumberOfPagesInDocument)
       oSrcDoc.Bookmarks("page").Range.Copy
        oSrcDoc.Windows(1).Activate
        Application.Browser.Target = wdBrowsePage
        Application.Browser.Next


        strSrcName = oSrcDoc.FullName
        strNewName = fso.BuildPath(fso.GetParentFolderName(strSrcName), _
                    fso.GetBaseName(strSrcName) & "_" & nIndex & "." & fso.GetExtensionName(strSrcName))
        Set oNewDoc = Documents.Add
        Selection.Paste
        oNewDoc.SaveAs strNewName
        oNewDoc.Close False
    Next


    Set oNewDoc = Nothing
    Set oRange = Nothing
    Set oSrcDoc = Nothing
    Set fso = Nothing


    MsgBox "结束!"


End Sub

点击上方的“运行-运行子过程/窗体”,稍等几秒会弹出一个拆分成功结束的提示框,点击“确定”后关闭VBA窗口,打开文件夹,发现已经拆分完成了,出现2个独立的Word文档。

分别点击打开拆分好的Word文档,我们发现每首词已经分别整齐的放置到了里面。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 lqy2005888@qq.com 举报,一经查实,本站将立刻删除。