首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与Document.Revisions相似的集合

与Document.Revisions相似的集合
EN

Stack Overflow用户
提问于 2020-05-01 16:37:47
回答 1查看 50关注 0票数 0

在Word 2013中使用VBA。

在Word对象模型中,Document.Revisions为您提供了一组修订对象(跟踪的更改),您可以通过编程方式接受或拒绝它们。此外,集合本身具有一个Count属性。

我没有在对象模型中找到任何公开撤销/重做计数或历史记录的特性。为了澄清,我正在寻找一种方法来确定在给定时间内撤消堆栈和重做堆栈中有多少用户更改(因为我不是通过宏编辑文档内容)。能够看到可用于撤消或重做的单个更改,这将是一个额外的好处,但如果没有它,我还好。

我知道我可以使用Document.UndoDocument.Redo方法,但是我看不出有什么方法可以得到可以撤消的更改的计数,或者可以重做的未完成的更改的计数。

可以这样说,我可以通过调用Document.Undo.Redo来迭代堆栈,并检查返回值以查看那里是否有任何内容,然后逆转刚才撤消/重做的内容。我希望能有类似于Document.Revisions.Count的东西。

编辑:我需要访问重做堆栈。看起来,对象模型似乎没有公开该对象。这里记录的一个古老的(2013年)问题表明,没有这样的对象/集合(搜索"redorecord")。

有什么想法吗?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-05-01 23:03:43

您可以创建和部署一个自定义UndoRecord,这样您就可以在结束时通过'ActiveDocument.Undo‘这样的代码一次回滚所有操作,而不需要跟踪所有干预的编辑。请参阅:https://learn.microsoft.com/en-us/office/vba/word/Concepts/Working-with-Word/working-with-the-undorecord-object

要将其部署到文档本身中的最终用户操作,只需使用:

代码语言:javascript
复制
Option Explicit
Dim objUndo As UndoRecord

Sub CreateUndoRecord()
Set objUndo = Application.UndoRecord
objUndo.StartCustomRecord
End Sub

若要创建自定义记录,完成后,请使用以下内容清除该批次:

代码语言:javascript
复制
Sub ClearUndoRecord()
objUndo.EndCustomRecord
ActiveDocument.Undo
End Sub
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61546690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档