前言|职场实例

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

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

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

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

如下图所示:

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

word如何按页拆分成多个文档(Word按页拆分成多个独立文档)(1)

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

word如何按页拆分成多个文档(Word按页拆分成多个独立文档)(2)

最终实现的效果是:

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

word如何按页拆分成多个文档(Word按页拆分成多个独立文档)(3)

解决方案|解题步骤

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

word如何按页拆分成多个文档(Word按页拆分成多个独立文档)(4)

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

word如何按页拆分成多个文档(Word按页拆分成多个独立文档)(5)

点击“插入-模块”,将下面一段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

word如何按页拆分成多个文档(Word按页拆分成多个独立文档)(6)

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

word如何按页拆分成多个文档(Word按页拆分成多个独立文档)(7)

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

word如何按页拆分成多个文档(Word按页拆分成多个独立文档)(8)

,