word文档怎么拆分内容(按指定页数动态拆分Word文档)
word文档怎么拆分内容(按指定页数动态拆分Word文档)我们的需求是:在一个文件夹内存放了一个需要拆分的Word文档,名称为“Excel情报局 总表”,内含4页文档,4页内容分别为一首宋词,如下图所示:如何按指定页数动态拆分Word文档?也就是说上述方法是按单页拆分的,如果想按照指定页数拆分,比如说按每2页进行拆分,该如何批量操作完成呢?通过这个需求我们发现,职场办公中我们遇到的问题好像是千变万化的,永远都有新的问题出现,但是只要我们学会举一反三,储备知识,就可以解决这样的问题。如下图所示:
前言|职场实例
我们在本月13号的文章中介绍了“如何将一个Word文档按页拆分成多个独立文档”的方法,具体操作方法可以查阅本月13号的详细推文链接:
将一个Word文档按页拆分成多个独立文档,同事1天的工作量,你只要半分钟!
文章刚发布不久,就有粉丝留言咨询:
如何按指定页数动态拆分Word文档?也就是说上述方法是按单页拆分的,如果想按照指定页数拆分,比如说按每2页进行拆分,该如何批量操作完成呢?
通过这个需求我们发现,职场办公中我们遇到的问题好像是千变万化的,永远都有新的问题出现,但是只要我们学会举一反三,储备知识,就可以解决这样的问题。
如下图所示:
在一个文件夹内存放了一个需要拆分的Word文档,名称为“Excel情报局 总表”,内含4页文档,4页内容分别为一首宋词,如下图所示:
我们的需求是:
每2页拆分为一个独立的Word文档,即最后拆分为2个独立的Word文档,每个Word文档中显示2页内容,每页内容为1首宋词内容。具体效果如下图所示:
步骤|解决方案
在文件夹内打开那个需要按页拆分的文档(本例中它的文件名叫做“Excel情报局 总表”)
点击“开发工具”选项卡,接着点击"visual basic,进入VBA编辑器,或者键入ALT F11打开VBA编辑器。点击“插入-模块”,新建一个模块用于编辑输入VBA代码。
将下面一段VBA代码复制粘贴到该新建的模块中。点击上方的“运行-运行子过程/窗体”,稍等几秒会弹出一个拆分成功结束的提示框。点击“确定”按钮。
代码如下:
Option Explicit
Sub DynamicSplitPagesAsDocuments()
Dim oSrcDoc As Document oNewDoc As Document
Dim strSrcName As String strNewName As String
Dim oRange As Range
Dim nIndex As Integer nSubIndex As Integer nTotalPages As Integer nBound As Integer
Dim fso As Object
Const nSteps = 2
Set fso = CreateObject("Scripting.FileSystemObject")
Set oSrcDoc = ActiveDocument
Set oRange = oSrcDoc.Content
nTotalPages = ActiveDocument.Content.Information(wdNumberOfPagesInDocument)
oRange.Collapse wdCollapseStart
oRange.Select
For nIndex = 1 To nTotalPages Step nSteps
Set oNewDoc = Documents.Add
If nIndex nSteps > nTotalPages Then
nBound = nTotalPages
Else
nBound = nIndex nSteps - 1
End If
For nSubIndex = nIndex To nBound
oSrcDoc.Activate
oSrcDoc.Bookmarks("\page").Range.Copy
oSrcDoc.Windows(1).Activate
Application.Browser.Target = wdBrowsePage
Application.Browser.Next
oNewDoc.Activate
oNewDoc.Windows(1).Selection.Paste
Next nSubIndex
strSrcName = oSrcDoc.FullName
strNewName = fso.BuildPath(fso.GetParentFolderName(strSrcName) _
fso.GetBaseName(strSrcName) & "_" & (nIndex \ nSteps) & "." & fso.GetExtensionName(strSrcName))
oNewDoc.SaveAs strNewName
oNewDoc.Close False
Next nIndex
Set oNewDoc = Nothing
Set oRange = Nothing
Set oSrcDoc = Nothing
Set fso = Nothing
MsgBox "结束!"
EndSub
最后关闭VBA窗口,再关闭Word文档。然后打开进入文件夹,我们发现已经拆分完成了,出现了2个独立的Word文档。
点击打开2个拆分好的Word文档,我们发现每个独立的Word文档中存放了2页内容。
最后效果截图:
按指定页数动态拆分Word文档,按每2页拆分了“Excel情报局 总表”Word文档,最后形成2个独立的Word文档,每个文档中显示2页,每页为一首宋词内容。
重点代码注释:
代码是固定的模板,只有下面一句需要根据现实办公需求灵活修改:
Const nSteps = 2
这里可以指定需要拆分的页数,如这里表示按照每2页拆分成一个小文档,依此类推,如果按照每3页拆分成一个小文档,即可修改为:
Const nSteps = 3