首页 > 解决方案 > 如何修复 VBA FOR EACH 在某些页面而不是 Word docx 的其他页面冻结?

问题描述

问题:如何修复 Word VBA FOR EACH 子例程,该子例程试图在每个跟踪的更改处插入注释,但会在文档的某些页面而不是其他页面冻结 VBA/Word。

以下代码适用于整个文档中的某些文档。不幸的是,其他文档将在文档中的某些位置冻结。

例如,我已经 F8 单步执行,发现一个文档会在 22 页文档的第 6 页和第 7 页冻结。然而,奇怪的是,我可以运行代码在所有其他页面上的每个跟踪页面插入评论。

Dim rev As Revision, txt As String
Dim pgno1 As String
Dim pgno2 As String

Application.ScreenUpdating = False

ActiveDocument.TrackRevisions = False

'check Revisions
For Each rev In ActiveDocument.Revisions
    Select Case rev.Type 
        Case wdRevisionDelete
            txt = Left(rev.Range.Text, 3) 'the deleted text
                rev.Range.Comments.Add Range:=rev.Range, Text:="Pg [#" & pgno1 & "] BLAH " & txt & " [ ... ]“
        Case wdRevisionInsert
            txt = Left(rev.Range.Text, 3) 'the inserted text
                rev.Range.Comments.Add Range:=rev.Range, Text:= "Pg [#" & pgno1 & "] BLAH " & txt & " […]”
 End Select
 Next rev
 ActiveDocument.TrackRevisions = True

目标:在整个 docxz 中的每个跟踪更改处插入带有特定文本的注释

错误:没有消息。VBA 和 Word 冻结,需要重新启动。

标签: vbams-wordselect-case

解决方案


推荐阅读