用vba在word文档中插入分隔符,可以使用Range或者Selection对象的InsertBreak方法。
定位word的每页可以使用Document、Range、Selection对象的GoTo方法。
由于GoTo方法将返回一个Range对象,该对象表示定位的对象的起始位置。
基于以上的知识,用vba在word文档的每页结尾插入分页符、分节符,可以采用以下的算法
从最后一页开始遍历到第二页,每次返回的是当前页的开始位置,然后在开始位置插入分隔符即变成了在上一页的结尾插入分隔符。
实现代码如下:
以下代码可以在word文档的每页结尾插入一个不分页的分节符
Sub QQ1722187970() Const wdPageBreak = 7 Const wdSectionBreakContinuous = 3 Const wdSectionBreakNextPage = 2 Const wdGoToPage = 1 Const wdGoToAbsolute = 1 Dim oDoc As Document Dim oRng As Range Set oDoc = Word.ActiveDocument Dim iPageNo As Long '获取总页数 With oDoc iPageNo = .Range.Information(wdNumberOfPagesInDocument) For i = iPageNo To 2 Step -1 '定位到页开始 Set oRng = .GoTo(wdGoToPage, Which:=wdGoToAbsolute, Count:=i) Debug.Print oRng.Start, oRng.End '插入不换页分节符 oRng.InsertBreak wdSectionBreakContinuous Next i End With End Sub
如果要每间隔一页插入一个空白页,可以使用如下的代码:
Sub QQ1722187970() Const wdPageBreak = 7 Const wdSectionBreakContinuous = 3 Const wdSectionBreakNextPage = 2 Const wdGoToPage = 1 Const wdGoToAbsolute = 1 Dim oDoc As Document Dim oRng As Range Set oDoc = Word.ActiveDocument Dim iPageNo As Long '获取总页数 With oDoc iPageNo = .Range.Information(wdNumberOfPagesInDocument) For i = iPageNo To 2 Step -1 '定位到页开始 Set oRng = .GoTo(wdGoToPage, Which:=wdGoToAbsolute, Count:=i) Debug.Print oRng.Start, oRng.End '插入分页符 oRng.InsertBreak wdPageBreak Next i End With End Sub
发表评论