我在Word 2003中有一个相当简单的VBA,它将文档的字体更改为“eco font”(长篇故事),然后打开“打印”对话框。
当用户点击“取消”或“确定”时,代码会执行“撤消”以恢复更改。
问题是,有时当我按“确定”打印文档时,两个操作需要撤消('字体更改'和'更新字段')。我似乎无法预测何时会发生这种情况。
有没有办法读取Word的撤消缓冲区中的最后一项?这样我就可以继续按下撤消,直到字体更改完成。
修改 最终代码(缩减):
ActiveDocument.Range.Bookmarks.Add ("_tempEcoUndoStart_")
ActiveDocument.Content.Font.Name = "Nanonymus Eco Sans"
Dialogs(wdDialogFilePrint).Show
While ActiveDocument.Bookmarks.Exists("_tempEcoUndoStart_")
ActiveDocument.Undo
Wend
答案 0 :(得分:4)
您可以使用诀窍在Word中进行“事务性”撤消:在宏的开头,在整个文档上放置一个特殊的书签。完成宏后,您应该再次删除此书签。现在,在调用撤消命令时,在文档中有特殊书签时重复撤消。
以下相关问题详情如下:
答案 1 :(得分:0)
我还没有测试过,但也许你可以在你的行动之前使用UndoClear,然后依靠撤消?
ActiveDocument.UndoClear
ActiveDocument.Undo 2