VBA Word:从导航窗格中删除部分

时间:2012-07-26 15:32:11

标签: vba ms-word word-vba word-2010

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

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

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

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

1 个答案:

答案 0 :(得分: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”。记录一个宏,并检查它是如何执行的。