如何用vba遍历word文档中的所有标题样式?

在word文档中,如果套用了很多标题样式,有时候需要遍历同一级的标题,对其进行后续处理。

在vba 中可以使用定位的方法快速地定位标题,但是这个定位是定位所有标题样式,不分层级的。

为此,可以使用如下的vba代码对某个层级的标题进行遍历:

Sub QQ1722187970()
    Dim oP As Paragraph
    Dim oP1 As Paragraph
    Dim oRng As Range
    Dim oDoc As Document
    Set oDoc = Word.ActiveDocument
     With oDoc
       iMin = -1
       I = 1
       Do
            '循环每个标题
            Set oRng = .GoTo(wdGoToHeading, wdGoToAbsolute, I)
            '获取标题所在的段落
            Set oP = oRng.Paragraphs(1)
            If oP.Style = "标题 2" Then
                '获取当前段落的下一个段落
                Set oP1 = oP.Next
                '其它判断代码
            End If
            '如果到底或者回到头则退出循环
            If oRng.Start < iMin Or oRng.Start = iMin Then Exit Do
            Debug.Print oRng.Start, oRng.End
            iMin = oRng.Start
            I = I + 1
      Loop Until 1 <> 1
    End With
End Sub
       

发表评论