【问题标题】:VBA Word: Section deletion from Navigation PaneVBA Word:从导航窗格中删除部分
【发布时间】:2012-07-27 20:11:20
【问题描述】:

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

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

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

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

【问题讨论】:

  • 你试过什么代码?请张贴。

标签: vba ms-word word-2010


【解决方案1】:

“录制宏”功能不会录制任何内容,因为您只能使用鼠标选择部分。众所周知,“录制宏”工具不适用于鼠标。 我在 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

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

【讨论】:

  • 如果有帮助,请“接受”我的回答,以便以后发现此讨论的其他人知道它解决了您的问题。
猜你喜欢
  • 1970-01-01
  • 2015-02-06
  • 1970-01-01
  • 1970-01-01
  • 2014-10-30
  • 2021-11-16
  • 2018-07-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多