在【如何用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
发表评论