You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Word VBA批量接受修订并高亮修改内容时触发运行时错误5852的问题求助

Word VBA批量接受修订并高亮修改内容时触发运行时错误5852的问题求助

我想实现的功能是:接受文档中所有的追踪修订(tracked changes),同时高亮显示被修改过的内容——说白了就是把“追踪修订”的标记转换成高亮效果。

最开始我写了这段宏代码:

Sub AcceptChangesAndHighlight()

Dim rev As Revision

Dim rng As Range

For Each rev In ActiveDocument.Revisions

Set rng = rev.Range

rng.Revisions.AcceptAll

rng.HighlightColorIndex = wdPink ' Replace 'wdPink' with the appropriate color index

Next rev

End Sub

这段代码在大部分文档里都能正常工作,但在一份18页的较大文档里,触发了运行时错误5852

Requested object is not available.

点击调试时,报错行指向:Set rng = rev.Range

之后我在其他论坛找到了另一段替代代码:

Sub AcceptChangesAlt()

Dim tempState As Boolean

tempState = ActiveDocument.TrackRevisions

ActiveDocument.TrackRevisions = False

Dim index As Long

Dim changeRange As Range

For index = ActiveDocument.Revisions.count To 1 Step -1

Set changeRange = ActiveDocument.Content

changeRange.Start = ActiveDocument.Revisions(index).Range.Start

changeRange.End = ActiveDocument.Revisions(index).Range.End

changeRange.Revisions.AcceptAll

changeRange.Font.Color = 12611584 ' Set font color (change as needed)

Next

ActiveDocument.TrackRevisions = tempState

End Sub

结果还是触发了同样的错误,调试时报错行指向:changeRange.Start = ActiveDocument.Revisions(index).Range.Start

我又自己调整了一版代码:

Sub accept_changes()

tempState = ActiveDocument.TrackRevisions

ActiveDocument.TrackRevisions = False

Dim index As Long, Change As Range

For index = ActiveDocument.Revisions.Count To 1 Step -1

Set Change = ActiveDocument.Revisions(index).Range

Change.Revisions.AcceptAll

Change.Font.Color = 12611584

Next

ActiveDocument.TrackRevisions = tempState

End Sub

依然是同样的错误,报错行指向:Set Change = ActiveDocument.Revisions(index).Range

我之前听说Zotero插件可能会导致这类宏错误,但我并没有安装这个插件。有没有人能帮我排查下问题出在哪,或者提供一个能在大文档里正常运行的解决方案?

备注:内容来源于stack exchange,提问作者greenwood45

火山引擎 最新活动