Vba word中前一标题的文本

Vba word中前一标题的文本,vba,ms-word,Vba,Ms Word,给定word中选定的任何单词或段落,是否有方法使用VBA查找最近的前一个标题的文本 例如: 标题级别1:主标题 这是关于文件的一段。(A) 标题二级:副标题 本段描述了一个细节 如果选择了(B)的任何部分,我想查找“子标题”。如果选择了(A)的任何部分,我想查找“主标题”。这就是您要尝试的吗 Option Explicit Sub Sample() Do Selection.MoveUp Unit:=wdLine, Count:=1 Selection

给定word中选定的任何单词或段落,是否有方法使用VBA查找最近的前一个标题的文本

例如:

标题级别1:主标题 这是关于文件的一段。(A) 标题二级:副标题 本段描述了一个细节


如果选择了(B)的任何部分,我想查找“子标题”。如果选择了(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
选项显式
子样本()
做
Selection.MoveUp单位:=wdLine,计数:=1
Selection.HomeKey单位:=wdLine
Selection.EndKey单位:=wdLine,Extend:=wdExtend
如果ActiveDocument.ActiveWindow.Selection.Information(wdFirstCharacterLineNumber)=1,则退出Do
循环直到选择。样式“正常”
msgboxselection.Style
端接头
SANPSHOT


前面的标题有一个特殊的
WdGoToItem

Dim航向作为范围
Set heading=selection.GoTo(What:=wdGoToHeading,Which:=wdGoToPrevious)
'显示标题文本
标题.展开单位:=WD段落
MsgBox heading.Text
下面是一个鲜为人知的技巧,可以从文档中的任何位置获取整个当前标题级别:

Dim headingLevel作为范围
“headingLevel包含上一标题下的区域
Set headingLevel=Selection.GoTo(内容:=wdGoToBookmark,名称:=“\headingLevel”)

这很整洁。这只是一个补充。。。我们如何获得章节号和标题名?例如,我的标题是“1.2.1标题文本”。您的解决方案确实为我提供了“标题文本”,但我需要完整的标题名称。有什么办法吗?@Meet:我做了一些改变,把编号字符串也放进去了