宏删除word doc中所有重复的文本实例

时间:2011-01-28 20:06:35

标签: vba ms-word

我正在寻找一种简单的方法来删除Word 2007文档中的重复文本。如果查找/替换命令有一些快捷方式,我没有看到它。否则,有人可以推荐我如何编写一个如下所示的宏:

1-选择一个文本块(可以是多个段落,有子弹点等) 2-运行宏或执行命令 3-宏或命令将删除所选文本块的所有实例。

有什么见解吗?

4 个答案:

答案 0 :(得分:3)

Selection.Text 返回当前选择的文本。

原则上,Replace命令的语法是:

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
    .Text = Selection.Text
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll

用空字符串替换,从而删除要查找的每个文本实例。

但是:你当然必须决定如何处理所选文本的格式,可能必须首先分析你选择的块,因为替换可能不适用于 Selection.Text 忽略的控制字符。 ..这只是一个开始,你需要指定你想要的东西,然后再问一遍,你自己还是我们。同时记录宏和vba参考词是你的朋友。

答案 1 :(得分:0)

对于字母数字文本(带有换行符),您可以使用“查找/替换”,但只要您进入项目符号,新段落等领域,它就不再进行精确匹配。如果您经常需要这样做,我建议使用像LaTeX这样的程序来编写您的文档。 LaTeX允许您对大块文本进行精确匹配。如果您使用的是Windows机器,那么可以在http://www.tug.org/protext/

找到一个很好的LaTeX软件包。

答案 2 :(得分:0)

我有完全相同的问题,庞大的邮件列表,我只需要电子邮件。我通过复制excel中的文本,逐句过滤我想删除的段落并删除所有行来解决它。我的工作超过270页,工作得很好(只要文字不太长,它比逐字逐句替换快得多。)或者如果它是一个选项,只需用文本过滤器过滤 - 开始用“to:”,然后你就在10秒内完成。希望它有所帮助。

答案 3 :(得分:0)

只需按Ctrl + H选择并替换文本,键入要删除的文本,然后按替换全部将替换为字段BLANK