【发布时间】:2020-01-04 14:49:44
【问题描述】:
我正在尝试使用here 中的以下代码在其他文档中列出活动文档的拼写错误。我的实际文件大约 7MB 和 1400 页,拼写错误数约为 2400。
我看到的是每次 For Each 循环运行下一项时代码都会卡住。
有没有办法提高这段代码的性能?谢谢
Sub GetSpellingErrors()
Dim DocThis As Document
Dim iErrorCnt As Integer
Dim J As Integer
Set DocThis = ActiveDocument
Documents.Add
iErrorCnt = DocThis.SpellingErrors.Count
For J = 1 To iErrorCnt
Selection.TypeText Text:=DocThis.SpellingErrors(J)
Selection.TypeParagraph
Next J
End Sub
我昨天已经在微软答案论坛上问过了,但没有得到任何答案。
【问题讨论】:
-
这可能更适合Code Review,但我猜你可以在数组或集合中建立列表。
-
看看这个docs.microsoft.com/en-us/office/vba/api/…,你可以尝试基于
ProofreadingError对象的for each循环 -
@BigBen 感谢您的回答。实际上,我尝试将拼写错误集合的内容存储在一个数组中,但是是相同的。它停留了几分钟,在大约 10 分钟内只打印了 20 个拼写错误
-
@Nathan_Sav 感谢您的回答。我认为我帖子中的代码正在执行您的建议。如果不是,您的建议如何?
-
我认为这种方法在处理大型文档时速度非常慢。在我的快速谷歌搜索中没有明显的解决方法。