在【如何用vba调用word的定位功能快速地定位具体的内容区域】一文中我们介绍了如何用goto方法快速地定位到word文档中的具体内容区域。
如果用vba获取word中所有的标题所在的页码,可以先定位到每个标题所在的Range对象,然后再通过Range对象的Information(wdActiveEndPageNumber)属性获取对应的页码即可。
代码如下:
Sub QQ1722187970()
Const wdActiveEndPageNumber = 3
Const wdGoToHeading = 11
Const wdGoToAbsolute = 1
Const wdGoToPage = 1
Dim oDoc As Document
Dim oWord As Word.Application
Set oWord = Word.Application
Set oDoc = oWord.ActiveDocument
Dim oRng As Range
With oDoc
iMin = -1
I = 1
Do
'循环每个标题
Set oRng = .GoTo(wdGoToHeading, wdGoToAbsolute, I)
'如果到底或者回到头则退出循环
If oRng.Start < iMin Or oRng.Start = iMin Then Exit Do
'输出页码
Debug.Print oRng.Information(wdActiveEndPageNumber)
iMin = oRng.Start
I = I + 1
Loop Until 1 <> 1
End With
End Sub


发表评论