0

在此处输入图像描述我想使用 VBA 宏从我的 word 文档中删除某些行。基本上,要删除的(并用“***”替换)文本(块)遵循一定的模式(如下)。

Bottom of Form
perma-link

Top of Form
save
Bottom of Form
[+] ....
[–] ....
Top of Form

“....”表示每个块都会更改的文本,但可以肯定的是,该行以“[+]”或“[-]”开头。

请推荐一个合适的宏

编辑:在屏幕截图中,我想将文本保留为黄色并删除其余部分。(在实际文件中,文本不是黄色的)

PS-仅供参考,我尝试使用循环查找和删除行宏(用于逐行删除)的示例,但我收到运行时错误 5941,其中调试选项突出显示宏中的“selection.row.delete”行。

这是什么意思?

4

1 回答 1

1

假设示例列表是段落开头的列表,则以下代码应该可以解决问题。你要做的就是arrRemove像我在测试中所做的那样将所有“开始的段落”放入数组中。如果任何标记是特殊标记(有关更多信息,请参阅此链接),您需要\像我对[+]and所做的那样在其前面添加[-]。希望这是您正在寻找的。

Sub Macro2()

    Dim arrRemove As Variant
        arrRemove = Array("Bottom of Form", "perma -link", "Top of Form", _
                    "\[+\]", "\[\-\]", "Donec", "In")

    Dim i!
    For i = 0 To UBound(arrRemove)
        Activedocument.Range(0,0).select

        Selection.Find.ClearFormatting
        With Selection.Find
            .Text = arrRemove(i) & "*^13"
            .Replacement.Text = ""  'replace with nothing

            .Forward = True
            .Wrap = wdFindContinue
            .MatchCase = False
            .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll

    Next i

End Sub

上述宏将删除以下文档中的所有黄色段落。

在此处输入图像描述

于 2013-10-03T20:32:58.487 回答