我有一张Excel工作表,上面有一个按钮(ActiveX版本)。 在按钮单击代码我正在使用COM对象。我需要捕获事件,因此使用 WithEvents
声明对象Option Explicit
Private WithEvents m_object As MyObjectWithEvents
Private Sub Button_Click()
Set m_object = New MyObjectWithEvents
m_object.DoStuff
End Sub
添加代码后,它就可以了。但在关闭并重新打开工作簿后,按钮停止工作。 该按钮仍然可以点击但没有任何反应。 Button_Click()永远不会被调用。另一个奇怪的事情是悬停在按钮上显示一个十字架(就像你在一个牢房时),而不是通常的鼠标箭头。
只要删除 WithEvents 关键字,按钮就会再次运行,也就是说,Button_Click会被执行。
将所有这些从表单代码移到一个类中。但是,我仍然对发生的事情感到好奇。听起来像安全相关的东西,但我在网上找不到任何东西。
你知道发生了什么吗?