用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


发表评论