gpt4 book ai didi

vba - 使用.Find 时如何忽略尚未接受的修订?

转载 作者:行者123 更新时间:2023-12-04 17:56:36 24 4
gpt4 key购买 nike

我正在尝试通过查找并突出显示常见的标点符号和间距错误(例如双空格、标点符号周围不正确的间距等)来校对科学论文。我正在使用 Word 2010。

以下代码适用于未打开修订的 Word 文档。它以红色突出显示包含在 TargetList 中的字符串的实例:

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

我只需要在文档的最终 View 中检查此类错误。但是,此宏将“已删除”(如已删除但更改尚未接受)字符视为文档中仍然存在。

考虑这个例子(忽略黄色高亮部分)。
enter image description here

我通过添加一个句点并删除分号来拆分原始句子。因此,在 Final: Show Markup 中,插入的句点和删除的分号一起出现 (.;)。即使我在“最终” View (而不是“最终:显示标记”)上运行宏,.Find 方法也会将此类“已删除”字符视为仍在文本中。

发生以下效果。

突出显示错误
enter image description here
一种可能的解决方法是打开另一个 Word 实例,复制并粘贴文件中的所有文本(在选择“Final”之后),然后在新的 Word 实例上运行宏。然后,我必须在 Word 的新实例上查找突出显示的错误,并在另一个实例上手动修复它们。

有没有办法让 .Find 方法只搜索在“最终” View 中查看文档时出现的文本,而忽略在跟踪修订打开时删除的文本?

最佳答案

不确定这是否能解决您的问题。我认为它对我有用。在代码的开头放置:

    With ActiveWindow.View.RevisionsFilter
.Markup = wdRevisionsMarkupNone
.View = wdRevisionsViewFinal
End With

然后在最后,您可以恢复到您首先保存的选项或强制使用更明智的选项,例如:

    With ActiveWindow.View
.RevisionsFilter.Markup = wdRevisionsMarkupSimple
.RevisionsFilter.View = wdRevisionsViewFinal
.MarkupMode = wdMixedRevisions
End With

关于vba - 使用.Find 时如何忽略尚未接受的修订?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40030101/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com