2012-05-24 38 views
3

給定Word中任何選定的單詞或段落,是否有一種方法可以使用VBA查找最近的前面標題的文本?Word中前面標題的文本

例如:

標題級別1:主標題 這是關於該文檔的段落。 (A) 標題級別2:A標題 本段描述了一個細節。(B)

如果選擇了(B)的任何部分,我想要找到「A Sub Title」。如果選擇了(A)的任何部分,我想找到「主標題」。

回答

2

這是你正在嘗試?

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

enter image description here

2

有朝一個標題特殊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")