保存时自动运行宏不起作用Word VBA

时间:2017-06-09 00:09:51

标签: ms-word word-vba

我在word文档中有一个VBA代码。每次用户点击保存时,代码都会运行。当文档类型是启用Word宏的文档时,代码工作正常,但当我将文档转换为Word宏启用模板代码停止工作时,任何建议如何解决这个问题? 注意:代码在文档本身

Private WithEvents App As Word.Application
Private Sub Document_Open()
Set App = Word.Application
End Sub
Private Sub App_DocumentBeforeSave(ByVal Doc As Document, SaveAsUI As Boolean, Cancel As Boolean)
do stuff....

1 个答案:

答案 0 :(得分:1)

打开docm文档时会初始化您的类。转换为dotm后,它仍然是触发On_Open事件的文档的开放,这意味着您必须打开模板。当然,拥有模板的重点在于您不想打开它。因此,App类永远不会被初始化,因此App事件永远不会触发。您可能希望在New事件上初始化App类。

说完这个之后,我怀疑你的代码仍然正常工作,但你可能一直在测试错误的方式。创建新文档时,将不会初始化App类,并且在保存新文档时不会发生任何操作。但是,在关闭新文档然后再次打开它之后,将触发On_Open事件,之后将触发App事件。正如我所说,如果您初始化App类同时On_New和On_Open它应该按照您的意愿进行。