0

我正在尝试使用 VBA 代码从 Word 文档中删除标题中包含的部分。在我的情况下,一个部分是指屏幕左侧导航窗格中的列表。

例如,我会搜索“Introduction”的顶级标题并将其删除,然后下一个顶级标题将是“Body”,其下方有三个小节。我会选择“正文”部分并将其删除。在 Word 本身中很容易做到这一点,但我想通过 VBA 来做到这一点。我曾尝试在从导航窗格中删除时录制宏,但它没有录制任何内容。

编辑:或者,能够使用 VBA 突出显示标题,以及它下面的所有内容以及大小相等或更大的标题,也可以使用。

非常感谢任何想法或建议,谢谢!

4

1 回答 1

0

“录制宏”功能不会录制任何内容,因为您只能使用鼠标选择部分。众所周知,“录制宏”工具不适用于鼠标。我在 Word 中尝试了不同的方法来解决问题。我认为,正如您在编辑中已经指出的那样,最简单和最简单的方法是删除下面的所有文本,直到到达另一个标题或文本结尾:

Selection.Find.ClearFormatting
With Selection.Find
    .Text = "Introduction"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchKashida = False
    .MatchDiacritics = False
    .MatchAlefHamza = False
    .MatchControl = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
Selection.Find.Execute
unitsDeleted = Selection.Delete(wdCharacter, 2)
While (Selection.Style <> ActiveDocument.Styles("Heading 1")) And (unitsDeleted <> 0)
     unitsDeleted = Selection.Delete
Wend

换句话说,是在您的文档中搜索“介绍”字符串。然后删除所有字符,直到当前字符的样式为“标题 1”(或您指定的另一种样式)。您也可以搜索具有特定样式的“介绍”字样,例如“标题 1”。录制一个宏,并检查它是如何执行的。

于 2012-07-27T12:11:20.400 回答