我正在尝试使用VBA代码从Word文档中删除标题中包含的部分。在我的情况下,一个部分引用屏幕左侧导航窗格中的列表。
例如,我会搜索“简介”的顶级标题,然后将其删除,然后下一个顶级标题将是“正文”,其下方有三个子部分。我会选择“正文”部分并删除它。在Word中本身很容易做到,但我想通过VBA来做。我在从导航窗格中删除时尝试录制宏,但它没有录制任何内容。
编辑:或者,能够使用VBA突出显示标题,以及它下面的所有内容以及大小相等或更大的标题也可以。
非常感谢任何想法或建议,谢谢!
答案 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”。记录一个宏,并检查它是如何执行的。