在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


发表评论