我想为Word 2016创建一个VBA宏,删除没有正文的所有标题(即样式"标题1"和#34;标题2")在它下面。澄清一下,这就是我的意思。
水果
苹果和香蕉
蔬菜
谷物
面包和面食
水果
苹果和香蕉
谷物
面包和面食
我已经能够制作宏来删除所有正文文本或删除所有标题,但是如何创建一个只删除没有正文文本的标题的宏?
答案 0 :(得分:0)
这可以通过对文档中包含的段落进行简单的迭代来完成:
Sub CleanupHeadings()
Dim p As Paragraph
Dim pNext As Paragraph
For Each p In ActiveDocument.Paragraphs
If IsHeading(p) Then
' check the following paragraph
Set pNext = p.Next
If Not pNext Is Nothing Then
If IsHeading(pNext) Then
' next paragraph is a heading too, so delete current paragraph
p.Range.Delete
End If
Else
' no following paragraph, i.e. document ends with a heading
p.Range.Delete
End If
End If
Next
End Sub
Function IsHeading(para As Paragraph) As Boolean
IsHeading = para.OutlineLevel < wdOutlineLevelBodyText
End Function