Tôi đang ở trong Excel 2010 và dường như tôi đang nhận được một hành vi lạ thay vì không mong muốn khi làm việc với các sự kiện tùy chỉnh.Sự kiện tùy chỉnh không kích hoạt
Tôi như chắc chắn 99% phương pháp này đã làm việc cho tôi một vài năm trước đây (có thể đó là trong Excel 07/03 - không thể nhớ)haycó lẽ tôi đã sai lầm chỉ một cái gì đó lên ...
Dưới đây là một repro:
Thêm một mô-đun lớp mới và đặt tên nó Factory
Public Event AfterInitialize()
Private Sub Class_Initialize()
RaiseEvent AfterInitialize
End Sub
Thêm một mô-đun lớp và tên là 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
và một tiêu chuẩn Module1
và chạy dưới
Sub Main()
Dim fTest As FactoryTest
Set fTest = New FactoryTest
End Sub
Tại thời điểm này tôi mong đợi để xem after initialized..
trong Window Ngay lập tức nhưng tôi không ...
Bước qua mã có vẻ như Private Sub cFactory_AfterInitialize()
không bao giờ đạt được ...
Lưu ý:
tôi có thể thêm một tiểu công cộng: RaiseAfterInitialize()
đến lớp Factory
và sau đó gọi đó một cách rõ ràng trong trường hợp Initialize()
trong FactoryTest
như cFactory.RaiseAfterInitialize()
để có thể là một công việc có thể xung quanh nhưng những gì tôi đang thực sự cố gắng để hiểu là tại sao nó doesn 't làm việc theo cách ban đầu cho thấy ở trên?
There isn't much on VBA events on MSDN
Bất kỳ ai có thể chỉ ra những gì tôi đang làm sai?
Không phải đơn giản là 'Factory_AfterInitialize()'? –
chắc chắn không :) –
Tôi nghi ngờ đó là thời gian. Lớp Factory đã không hoàn thành khởi tạo để sự kiện được nâng lên trước khi biến trong lớp FactoryTest được gán hoặc đánh chìm các sự kiện. – Rory