将一个Word文档按页拆分成多个独立文档,同事1天的工作量,你只要半分钟!

Excel情报局
Excel职场联盟
生产挖掘分享Excel基础技能
Excel爱好者大本营
用1%的Excel基础搞定99%的职场问题
做一个超级实用的Excel公众号
Excel是门手艺玩转需要勇气
数万Excel爱好者聚集地
SUPER EXCEL MAN

前言|职场实例

今天遇到了这样的一个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 DocumentDim 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文档,我们发现每首词已经分别整齐的放置到了里面。
阅读完文章之后,希望小伙伴们在文章底部帮助小编[点赞]点亮[在看]并分享转发到[朋友圈],坚持持续分享的路上很辛苦,需要有你们的鼓励与支持!您也可以通过在文章底部[留言]的方式反馈实际办公中遇到的Excel各种问题。
(0)

相关推荐