我正在尝试编写一个宏,这将帮助我在完成编辑后校对科学论文,方法是查找并突出显示一些常见的标点符号和间距错误(例如双空格,标点符号周围的不正确间距等)。我正在使用Word 2010.VBA - 在追踪更改时在MS Word中使用.Find
下面的代码对于没有启用“跟踪更改”的Word文档而言工作正常。它强调包含在目标列中的字符串的情况下,在红:
Sub HighlightTargets2()
Dim range As range
Dim i As Long
Dim TargetList
TargetList = Array(" ", " ,", " .", " ?", " :", " ;", " -", " –", " —", "- ", "– ", "— ", ",,", "..", "::", ";;", "??", ",.", ".,", ",?", "?,", "?.", ".?", ";:", ":;", ";,", ";.", ".;", ".;", "^$(", "^$)", "(^$", "^#(", "^#)", ")^ #", "(^#") ' put list of terms to find here
For i = 0 To UBound(TargetList)
Set range = ActiveDocument.range
With range.Find
.Text = TargetList(i)
.Format = True
.MatchCase = True
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
Do While .Execute(Forward:=True) = True
range.HighlightColorIndex = wdRed
Loop
End With
Next
End Sub
的问题是,我只需要在文件的最后视图来检查这些错误。但是,当我使用这个宏时,它会在文档中仍然存在“已删除”(如已删除,已删除但尚未接受的更改)字符。
Consider this example (ignore the yellow highlights).正如你在这幅图中看到的,我决定通过添加句点和删除分号来分割原始句子。因此,在最终:显示标记中,被拖拽的时间段和被删除的分号似乎都是(。;)。即使我在“最终”视图(而不是“最终:显示标记”)上运行宏,.Find方法也会将这些“已删除”字符仍保留在文本中。这意味着我的代码不起作用,因为会发生以下效果(如下图所示)。
一个可能的解决方法是打开word的另一个实例,复制和粘贴一切从文件中的文本(选择“最后”,显然后),运行在字的新实例宏。然后,我不得不寻找新单词突出显示的错误,并手动查找它们(并修复它们)。
有没有办法让.Find方法只搜索在“最终”视图中查看文档时出现的文本,并忽略在跟踪更改打开时被删除的文本?
谢谢,但是,我必须发送这些文件而不接受更改,以便原始作者可以看到我的更正。 –