Vba 如果没有以下文本,Marco将删除Microsoft Word中的标题

Vba 如果没有以下文本,Marco将删除Microsoft Word中的标题,vba,ms-word,Vba,Ms Word,我经常生成带有标题的MicrosoftWord文档,这些标题下并不总是有文本。我需要一个宏,将检查每个标题,如果下面没有文本,删除标题 标题的样式为“标题1”、“标题2”和“标题3”,以下文本的样式始终为“普通” 有人能推荐一个宏来完成这项任务吗,或者给我指出正确的开始方向吗 试试这个: Sub test() Dim HeadingF As Range Set HeadingF = ActiveDocument.Content With HeadingF.Find

我经常生成带有标题的MicrosoftWord文档,这些标题下并不总是有文本。我需要一个宏,将检查每个标题,如果下面没有文本,删除标题

标题的样式为“标题1”、“标题2”和“标题3”,以下文本的样式始终为“普通”

有人能推荐一个宏来完成这项任务吗,或者给我指出正确的开始方向吗

试试这个:

Sub test()

Dim HeadingF As Range
    Set HeadingF = ActiveDocument.Content

    With HeadingF.Find
        .Style = "Heading 1"
        .Forward = True
        .Wrap = wdFindStop
    End With

    Do
        HeadingF.Find.Execute
        If HeadingF.Find.Found Then

            If HeadingF.Paragraphs(1).Next.Range.Text = vbCr Then

                HeadingF.Delete

             End If
        End If
    Loop While HeadingF.Find.Found

End Sub

作为参考,编辑Manu的代码给了我以下信息:

Sub test()

Dim HeadingF As Range
Set HeadingF = ActiveDocument.Content

With HeadingF.Find
    .Style = "Heading 1"
    .Forward = True
    .Wrap = wdFindStop
End With

Do
    HeadingF.Find.Execute
    If HeadingF.Find.Found Then

        If HeadingF.Paragraphs(1).Next.Range.Style <> "Normal" Then

            HeadingF.Delete

         End If
    End If
Loop While HeadingF.Find.Found

End Sub
子测试()
暗淡的头像范围
Set HeadingF=ActiveDocument.Content
头朝下,找到
.Style=“标题1”
.Forward=True
.Wrap=wdFindStop
以
做
HeadingF.Find.Execute
如果找到了头,那么
如果标题F.段落(1).Next.Range.Style为“正常”,则
标题F.删除
如果结束
如果结束
返回时循环f.Find.Found
端接头

谢谢,不幸的是,
vbCr
在这种情况下不起作用,因为在标题本身之后没有换行符(布局是按空格前后进行的)。但是,如果我用
if HeadingF.parages(1).Next.Range.Text=vbCr
替换行
if HeadingF.parages(1).Next.Range.Style“Normal”
,这似乎效果更好,因此非常感谢您让我开始学习。我正在尝试将多个
If HeadingF.段落(1).Next.Range.Style
组合起来,作为我的下一步。好的,我很乐意提供帮助