none
请问,word2013中怎么按页数拆分一个文件? RRS feed

  • 问题

  • 在英文word2013中,一个文件有290页,需要每100页拆为一个文件,

    例如,

    文件1,p1-p100

    文件2,p101-p200

    文件3,p201-290

    请问怎么快速拆分?

    (当前是用复制粘贴页面的的办法,太慢了)


    TechNet.bai

    2019年11月15日 6:31

全部回复

  • 你好,

    通常,在Word中拆分文档可以按照章节来拆分,主要是借助在大纲视图下格式化章节标题,使用主控文档的创建功能生成子文档。下面借助网络上的动图教程展示一下相关的操作:

    1)打开要拆分的朗诵稿文档,点击【视图】-【大纲】按钮,进入大纲视图。

    2)分别选中需要进行拆分部分标题,然后设置一下【级别】,这里将其设置为“1级”。

    3)此时,可以发现在标题前多出了一个“+”,点击“+”号,就可以选中当前这一部分(选中部分也就是我们要拆分独立生成一个文档的部分),然后点击【主控文档】-【显示文档】-【创建】按钮创建新文档。

    4)全部设置完毕以后,我们直接保存,就可以看到文档已经被我们拆分成了多个独立的文档了。

    针对你的需求,你需要按页码拆分文档,Word中并没有相应的内置功能来实现。你需要借助VBA(宏)来实现:

    1)在Word里面打开那个需要分割的文档(假设它的文件名叫做“test.doc”);

    2)键入ALT+F11打开VBA编辑器,选择菜单“插入-模块”,或者键入ALT+F8打开宏命令窗口,或者点文档内上面的“工具”→“宏”→“宏”→找到这个宏→“运行”即可;

    3)粘贴下面的代码:

    Option Explicit
    
    
    Sub SplitEveryFivePagesAsDocuments()
    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 = 100
    
    
    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 + 1) & "." & fso.GetExtensionName(strSrcName))
    oNewDoc.SaveAs strNewName
    oNewDoc.Close False
    Next nIndex
    Set oNewDoc = Nothing
    Set oRange = Nothing
    Set oSrcDoc = Nothing
    Set fso = Nothing
    MsgBox "Done!"
    End Sub

    4)键入F5运行,看到“完成!”结束。

    经过测试该代码可以执行:

    如果拆分后每个页面文档页码不是100,可能是分节符识别的问题。你可以试着修改这一行“Const nSteps = 100”,修改100的值为其他试试看。

    如果你有任何进展,请在下方回复以告知我们.

    此致,

    敬礼

    Herb


    如果以上回复对您有所帮助,建议您将其标记为答复。如果您对我们的论坛支持有任何的建议,可以通过此邮箱联系我们:tnsf@microsoft.com.

    点击了解更多或者访问我们的 专用论坛,与我们的技术专家一起分享探索 Microsoft Office 2019。

    2019年11月15日 9:58
    版主
  • 你好,

    请问你的问题得到了解决吗?我很期待能收到你的回复。如果你有任何进展或者问题,请在帖子下面回复,我很乐意为你提供进一步的帮助。

    如果我之前的回复对你有帮助,请将其标记为“答复”,这将帮助其他有相似问题的论坛用户,在看到这个帖子的时候能得到帮助。感谢你的理解和支持。

    此致,

    敬礼

    Herb


    如果以上回复对您有所帮助,建议您将其“标记为答复”. 如果您对我们的论坛支持有任何的建议,可以通过此邮箱联系我们:tnsf@microsoft.com.

    点击了解更多,或者访问我们的专用论坛,与我们的技术专家一起分享探索 Microsoft Office 2019.


    2019年11月20日 10:01
    版主
  • 你好,

    这个帖子已经存在有一段时间了,请记得将有帮助的回复标记为“答复”,这有助于其他有相似问题的用户在看到这个帖子时快速找到有帮助的解答。这也帮助我们归档当前的问题。感谢你的理解与支持。

    如果有任何疑问,请及时在下方回复来告诉我们。

    此致,

    敬礼

    Herb


    如果以上回复对您有所帮助,建议您将其标记为答复。如果您对我们的论坛支持有任何的建议,可以通过此邮箱联系我们:tnsf@microsoft.com.

    点击了解更多或者访问我们的 专用论坛,与我们的技术专家一起分享探索 Microsoft Office 2019。

    2019年11月26日 10:13
    版主