我在Excel 2010中,我似乎得到一个奇怪的意外行为使用自定义事件。
我肯定99%肯定这种方法几年前对我有用(也许是在Excel 03/07 - 不记得了) 要么 也许我刚搞砸了什么...
这是一个复制品:
添加一个新的类模块并为其命名 Factory
Public Event AfterInitialize()
Private Sub Class_Initialize()
RaiseEvent AfterInitialize
End Sub
添加另一个类模块,名称是 FactoryTest
Private WithEvents cFactory As Factory
Private Sub Class_Initialize()
Set cFactory = New Factory
End Sub
Private Sub cFactory_AfterInitialize()
Debug.Print "after inialized..."
End Sub
和标准 Module1
并运行以下
Sub Main()
Dim fTest As FactoryTest
Set fTest = New FactoryTest
End Sub
此时我期望看到 after initialized..
在立即窗口但我没有......
似乎单步执行代码 Private Sub cFactory_AfterInitialize()
永远不会到达......
注意:
我可以添加一个公共子: RaiseAfterInitialize()
到了 Factory
然后在类中明确地调用它 Initialize()
事件发生在 FactoryTest
喜欢 cFactory.RaiseAfterInitialize()
所以这可能是一个可能的解决方案,但我真正想要了解的是为什么它不能按照上面显示的原始方式工作?
谁能指出我做错了什么?