寻找亮点会产生误报

时间:2014-07-03 17:08:24

标签: vba ms-word word-vba

我有一个模板,其中包含用户应该替换的突出显示文本(例如“[Client]”)。执行此操作时,用户始终会删除突出显示。

我使用Autoclose宏来捕捉任何剩余的亮点:

Selection.Find.ClearFormatting
Selection.Find.Highlight = True
With Selection.Find
    .Text = ""
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindStop
    .Format = True
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
if Selection.Find.Execute then
  'Stop and warn the user
end if

不幸的是,宏总是“找到”不再突出显示的文本。经过一些调试后,我发现它被一个单独的字母,空格,甚至段落标记所捕获,突出显示被删除了。

即使没有可见的高光,我也尝试选择单词或段落(包括段落标记)并再次“删除”高亮显示。宏仍然“捕获”该文本。唯一有效的是,如果我选择整个文档并“删除”所有高光。

如果我手动使用“查找”命令(在宏之外),它会正确显示没有突出显示。此问题仅发生在宏中。

1 个答案:

答案 0 :(得分:0)

尝试手动使用“查找”命令录制宏。宏完成录制后,查看宏的代码。您可能会注意到宏录制的内容与您在VBA Sub中的内容有所不同。