Vba 确定单词注释的当前标题文本和编号
上下文:通过VBA或VSTO进行Microsoft Word编程 Word文档对象的Comments属性允许枚举Word文档中的所有注释 如何找到Word注释的当前标题 示例文件: 标题1 标题1.1 (通知A) 输出:Vba 确定单词注释的当前标题文本和编号,vba,vsto,ms-word,Vba,Vsto,Ms Word,上下文:通过VBA或VSTO进行Microsoft Word编程 Word文档对象的Comments属性允许枚举Word文档中的所有注释 如何找到Word注释的当前标题 示例文件: 标题1 标题1.1 (通知A) 输出: 注释A-标题1.1我找不到更简单的方法,但它正在工作。以下代码正在搜索活动文档中第一条注释之前的最后一个标题。您可以使用为每个循环轻松地为所有注释采用它 Sub Heading_Above_Comment() Dim COMM As Comment Set C
注释A-标题1.1我找不到更简单的方法,但它正在工作。以下代码正在搜索活动文档中第一条注释之前的最后一个标题。您可以使用
为每个循环
轻松地为所有注释采用它
Sub Heading_Above_Comment()
Dim COMM As Comment
Set COMM = ActiveDocument.Comments(1)
'set new selection for range to search
Dim rngWHERE As Range
Set rngWHERE = ActiveDocument.Range(0, COMM.Reference.Start)
rngWHERE.Select
Selection.Find.ClearFormatting
'set heading style name you applied>>
Selection.Find.Style = ActiveDocument.Styles("Nagłówek 1")
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = False
.Wrap = wdFindContinue
.Format = True
End With
Do While Selection.Find.Execute
If Selection.End < COMM.Reference.Start And _
Selection.Start > rngWHERE.Start Then
Set rngWHERE = Selection.Range
Else
Exit Do
End If
Loop
'select the range
rngWHERE.Select
'range selected is last heading
MsgBox "last heading befor comment is selected and it is: " & Selection.Text
End Sub
注释()上方的副标题
Dim COMM As注释
Set COMM=ActiveDocument.Comments(1)
'为要搜索的范围设置新选择
变暗RNG此处为范围
设置rngWHERE=ActiveDocument.Range(0,COMM.Reference.Start)
rngWHERE。选择
Selection.Find.ClearFormatting
'设置应用的标题样式名称>>
Selection.Find.Style=ActiveDocument.Style(“Nagłówek 1”)
选择。查找
.Text=“”
.Replacement.Text=“”
.Forward=False
.Wrap=wdFindContinue
.Format=True
以
执行时执行Selection.Find.Execute
如果选择.EndrngWHERE.Start然后
设置rngWHERE=Selection.Range
其他的
退出Do
如果结束
环
'选择范围
rngWHERE。选择
'所选范围是最后一个标题
MsgBox“选择注释之前的最后一个标题为:”&Selection.Text
端接头
工作原理:
参考。转到
将带您转到当前标题(如果有)。(另见:)
Dim COMM As Comment
Set COMM=ActiveDocument.Comments(1)
变暗航向为射程
Set heading=COMM.Reference.GoTo(What:=wdGoToHeading,Which:=wdGoToPrevious)
'获取标题编号字符串
Dim hNum$
hNum$=heading.ListFormat.ListString
'获取标题文本
暗文本$
'将范围扩大到整个段落(包括最终CR)
标题.展开单位:=WD句子
hText$=heading.Text
MsgBox hNum$&vbTab&“左(hText$,Len(hText$)-1)&”
现在,如果您想要整个级别:
Dim headingLevel作为范围
“headingLevel包含COMM前面标题下的区域
Set headingLevel=COMM.Reference.GoTo(What:=wdGoToBookmark,Name:=“\headingLevel”)
如果我想找到其他文本并获取该文本前面的标题,如何使用此选项?