3
給定Word中任何選定的單詞或段落,是否有一種方法可以使用VBA查找最近的前面標題的文本?Word中前面標題的文本
例如:
標題級別1:主標題 這是關於該文檔的段落。 (A) 標題級別2:A標題 本段描述了一個細節。(B)
如果選擇了(B)的任何部分,我想要找到「A Sub Title」。如果選擇了(A)的任何部分,我想找到「主標題」。
給定Word中任何選定的單詞或段落,是否有一種方法可以使用VBA查找最近的前面標題的文本?Word中前面標題的文本
例如:
標題級別1:主標題 這是關於該文檔的段落。 (A) 標題級別2:A標題 本段描述了一個細節。(B)
如果選擇了(B)的任何部分,我想要找到「A Sub Title」。如果選擇了(A)的任何部分,我想找到「主標題」。
這是你正在嘗試?
Option Explicit
Sub Sample()
Do
Selection.MoveUp Unit:=wdLine, Count:=1
Selection.HomeKey Unit:=wdLine
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
If ActiveDocument.ActiveWindow.Selection.Information(wdFirstCharacterLineNumber) = 1 Then Exit Do
Loop Until Selection.Style <> "Normal"
MsgBox Selection.Style
End Sub
SANPSHOT
有朝一個標題特殊WdGoToItem
:
Dim heading As Range
Set heading = selection.GoTo(What:=wdGoToHeading, Which:=wdGoToPrevious)
' Display heading text
heading.Expand Unit:=wdParagraph
MsgBox heading.Text
這是一個鮮爲人知的技巧以獲得從當前整個標題級別文檔中的任何位置:
Dim headingLevel as Range
' headingLevel encompasses the region under the preceding heading
Set headingLevel = Selection.GoTo(What:=wdGoToBookmark, Name:="\HeadingLevel")