2016-07-16 55 views
0

我想为Word 2016创建一个VBA宏,删除下面没有正文文字的所有标题(即样式“标题1”和“标题2”)它。澄清一下,这就是我的意思。VBA Microsoft Word 2016宏用于删除下面没有文字的标题

  • 运行宏之前:

水果

苹果和香蕉

蔬菜

粮食

面包和面条

  • 运行宏之后:

水果

苹果和香蕉

籽粒

面包和意大利面

我已经能够使宏删除所有正文文本或删除所有标题,但是如何创建一个只删除下面没有正文文本的标题的宏?

回答

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 
相关问题