Vba DocumentBeforeClose语法
我真的不知道DocumentBeforeClose事件的语法。在下一页中,我应该创建一个名为“EventClassModule”的类模块(另请参阅文章)。所以我做了。然后我将这段代码(来自第一个链接的示例)复制到该(类)模块中: 最后,我把它放在一个普通模块中,并执行它:Vba DocumentBeforeClose语法,vba,ms-word,Vba,Ms Word,我真的不知道DocumentBeforeClose事件的语法。在下一页中,我应该创建一个名为“EventClassModule”的类模块(另请参阅文章)。所以我做了。然后我将这段代码(来自第一个链接的示例)复制到该(类)模块中: 最后,我把它放在一个普通模块中,并执行它: Dim X As New EventClassModule Sub Register_Event_Handler() Set X.App = Word.Application End Sub 在这种情况下,“X”是什
Dim X As New EventClassModule
Sub Register_Event_Handler()
Set X.App = Word.Application
End Sub
在这种情况下,“X”是什么意思?我做错了什么?现在关闭文档时没有执行任何事件。
X
是您创建的类的实例(EventClassModule
)
您的问题是.App
不是EventClassModule
的属性。改变
Set X.App = Word.Application
指向您在类中定义的属性
Set X.appWord = Word.Application
我也试过同样的方法!事实上它对我有用。我在名为
EventClassModule
Public WithEvents appWord As Word.Application
Private Sub appWord_DocumentBeforeClose _
(ByVal Doc As Document, _
Cancel As Boolean)
'Here is the code you want to do before it close
MsgBox "WORKING!"
End Sub
在一个模块(不是类模块)中,我有这个
Dim X As New EventClassModule
Sub AutoExec()
'Call any other sub or function you want
Call Register_Event_Handler
End Sub
Sub Register_Event_Handler()
Set X.appWord = Word.Application
End Sub
加载文档后立即调用AutoExec。因此它调用子寄存器\事件\处理程序来注册对象X(它是一个对象EventClassModule,创建的类模块)。因此,X将被通知文档即将关闭
希望有帮助
Dim X As New EventClassModule
Sub AutoExec()
'Call any other sub or function you want
Call Register_Event_Handler
End Sub
Sub Register_Event_Handler()
Set X.appWord = Word.Application
End Sub