Я работаю в 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..
в окне Immediate, но я не...
Выполняя код, кажется, что Private Sub cFactory_AfterInitialize()
никогда не достигается...
Примечание:
Я могу добавить открытый sub: RaiseAfterInitialize()
в класс Factory
, а затем вызывать это явно в событии Initialize()
в FactoryTest
как cFactory.RaiseAfterInitialize()
, так что это может быть возможной работой, но что я я действительно пытаюсь понять, почему это не работает, оригинальный способ показал выше?
Может ли кто-нибудь указать, что я делаю неправильно?