【问题标题】:Extract Heading before Body (MSWord VBA)在正文前提取标题 (MSWord VBA)
【发布时间】:2019-07-25 04:56:29
【问题描述】:

我正在研究一个可以在 Word 文件中提取错误拼写的宏,我能够搜索一个可以做到这一点的宏,但是我想添加一个函数,该函数还可以提取正文之前的标题文本。

With oRow                             
    .Cells(1).Range.Text = oDoc.SpellingErrors(J).Information(wdActiveEndPageNumber)
    .Cells(2).Range.Text = oDoc.SpellingErrors(J).Information(wdFirstCharacterLineNumber)
    .Cells(3).Range.Text = oDoc.SpellingErrors(J)
    .Cells(4).Range.Text = 'SHOULD CAPTURE THE HEADING                      
 End With

***幻灯片**** 2文字

形状:标题 1 >> 文本:敏捷的棕色狐狸跳过了懒惰的狗。 敏捷的棕色狐狸跳过了懒狗。快速的棕色狐狸跳跃 在懒惰的狗身上。敏捷的棕色狐狸跳过了懒狗。这 一只敏捷的棕色狐狸跳过了这只懒狗。

敏捷的棕色狐狸跳过懒惰的狗。快速的棕色狐狸跳跃 在懒惰的狗身上。敏捷的棕狐跳过了懒惰的狗。这 一只敏捷的棕色狐狸跳过了这只懒狗。快速的棕色狐狸跳跃 在懒惰的狗身上。

在上面的示例中,我现有的宏已经在提取“棕色”,因为它拼写错误。我需要添加一行来捕获“*** Slide **** 2 Text”,因为它是该段落的标题。

【问题讨论】:

  • 我不确定我们与“页眉”的含义相同...在 Word 中,页眉是出现在每一页顶部的内容,例如页码或日期。 (页脚是页面的底部。)您的意思是标题吗?是否使用内置标题样式格式化?
  • 对不起,是的@Cindy,我指的是标题样式,特别是“标题”
  • Arpee,“标题”不是标题样式,只是“常规”样式。标题样式有标题 1、标题 2 等。如果您使用标题样式,有一种非常简单的方法可以做到这一点......
  • 感谢 Cindy 的更正,假设它是“标题 1”

标签: vba ms-word


【解决方案1】:

Word 有一些内置书签,可以更轻松地处理文档的某些部分。由于它们来自旧的 Word Basic 时代,因此它们适用于当前选择。

因此,下面的代码首先选择拼写错误,然后选择拼写错误所在的整个标题级别。从那里,标题级别的第一段(使用标题样式格式化的文本)被拾取并分配给问题代码中的目标单元格。

Dim rng as Word.Range
With oRow                             
    .Cells(1).Range.Text = oDoc.SpellingErrors(J).Information(wdActiveEndPageNumber)
    .Cells(2).Range.Text = oDoc.SpellingErrors(J).Information(wdFirstCharacterLineNumber)
    .Cells(3).Range.Text = oDoc.SpellingErrors(J)
    oDoc.SpellingErrors(J).Select 
    Set rng = oDoc.Bookmarks("\HeadingLevel").Range
    rng.Collapse wdCollapseStart
    rng.MoveEnd wdParagraph, 1
    rng.MoveEnd wdCharacter, -1
   .Cells(4).Range.Text = rng.Text
 End With

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-11
    • 1970-01-01
    相关资源
    最近更新 更多