如下图所示为某个word文档中的当前选中内容
如果要用vba获取当前选中内容所在的标题样式所在的级别,也就是上图中的“2.3.2 整合性”,可以使用如下的vba代码:
Sub QQ1722187970() Dim oRng As Range Dim oDoc As Document Set oDoc = Word.ActiveDocument Dim oBM As Bookmark Dim oP As Paragraph '定位当前的Selection对象所在的所有标题及其子标题的文本所在的区域 Set oBM = oDoc.Bookmarks("\HeadingLevel") Set oRng = oBM.Range With oRng '获取所在的标题样式级别的第一个段落 Set oP = .ListParagraphs(1) '获取所在的标题样式级别的编号 sNum = .ListFormat.ListString '整个标题样式级别所包含的所有文本 sText = .Text '输出"2.32 整合性" Debug.Print sNum & " " & oP.Range.Text End With End Sub
上述代码,使用了word中的预定义书签“\HeadingLevel”定位当前的选择区域所在的标题及其所有子标题的文本。
由于上图word文档中当前的选择区域属于最底层的标题级别,所以不再包含其他子标题,如果选择的区域位于“2.3 设计原则”,则会包含其下属的各个子标题的文本。
发表评论