2012-07-26 221 views
0

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

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

编辑:或者,可以使用VBA来突出显示标题,以及其下方的所有内容以及等于或大于等于标题的标题也可以使用。

任何意见或建议,非常感谢,谢谢!

+0

你试过了什么代码?请张贴它。 – ForEachLoop 2012-07-26 21:03:59

回答

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”。记录一个宏,并检查它是如何执行的。

+0

谢谢,这有助于! – haystack 2012-07-27 13:42:58

+0

如果有帮助,请“接受”我的回答,以便后来发现此讨论的其他人知道它解决了您的问题。 – kosteg 2012-07-27 14:21:12