我想创建一个代码,在文档中的标题中搜索特定单词,并删除带有特定单词的标题以及与之相关的所有内容。
例如:
如果我要找的标题是"动物",而副标题是"猫"one_answers"狗",那么:
预宏
- 文本
- 动物
- 猫
- 狗
- 水果
- 樱桃
- 香蕉
后宏
- 文本
- 水果
- 樱桃
- 香蕉
感谢
您可以使用以下代码
Sub DeleteHeadingBlocks()
Application.ScreenUpdating = False
Dim Rng As Range, i As Long, ArrRls
ArrRls = Array("Animal", "Vegetable", "Mineral")
For i = 0 To UBound(ArrRls)
With ActiveDocument.Range
With .Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = ArrRls(i)
.Style = wdStyleHeading1
.Replacement.Text = ""
.Forward = True
.Format = True
.Wrap = wdFindStop
.MatchWildcards = False
.Execute
End With
Do While .Find.Found
Set Rng = .Paragraphs(1).Range
Set Rng = Rng.GoTo(What:=wdGoToBookmark, Name:="HeadingLevel")
Rng.Delete
.Find.Execute
Loop
End With
Next
Set Rng = Nothing
Application.ScreenUpdating = True
End Sub
按照编码,宏假设您使用的是"标题1"样式。宏使用的数组提供了三个术语("动物"、"蔬菜"one_answers"矿物"(;您可以删除/替换不需要的术语,也可以添加更多。