如何用vba获取word中所有的标题所在的页码?

【如何用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

 

       

发表评论