Word VBA:评论卡片选中时TrackRevisions报4605错误的解决咨询
解决Word宏中评论卡片选中时TrackRevisions报错的问题
当评论卡片处于选中状态时,Word的焦点会锁定在批注对象上而非主文档,直接访问ActiveDocument.TrackRevisions会触发4605运行时错误。以下是几种无需移动主文档光标即可取消评论选中状态的方案:
方案1:切换视图强制释放焦点
通过短暂切换文档视图,让主文档窗格重新获得焦点,不会改变光标在文档中的位置:' 切换视图释放评论焦点 Dim originalView As WdViewType originalView = ActiveWindow.ActivePane.View.Type If originalView = wdPrintView Then ActiveWindow.ActivePane.View.Type = wdNormalView End If ActiveWindow.ActivePane.View.Type = originalView ' 现在可安全访问TrackRevisions If ActiveDocument.TrackRevisions = False Then ' 你的校对宏逻辑 End If方案2:关闭当前选中的评论卡片
直接执行Word内置的关闭评论命令,仅取消当前选中的评论卡片,不关闭整个批注窗格:' 关闭选中的评论卡片 On Error Resume Next ' 防止没有选中评论时报错 CommandBars.ExecuteMso "CommentClose" On Error GoTo 0 ' 执行后续逻辑 If ActiveDocument.TrackRevisions = False Then ' 你的校对宏逻辑 End If方案3:激活主文档窗格
强制将焦点切换到主文档的编辑窗格,无需移动光标:' 激活主文档窗格 ActiveWindow.Panes(1).Activate ' 安全访问TrackRevisions If ActiveDocument.TrackRevisions = False Then ' 你的校对宏逻辑 End If
这些方法都能在保留主文档光标位置的前提下,解除评论卡片的选中状态,让TrackRevisions属性恢复可用。
内容的提问来源于stack exchange,提问作者hmm
相关产品推荐
相关产品推荐

