Używam PERSONAL.XLSB do wykonywania globalnych makr. W nim, ja też słuchać zdarzeń aplikacji w ten sposób w obiekcie ThisWorkbook
:Zdarzenia aplikacji Excel: Jak automatycznie resetować zmienną WithEvents po wystąpieniu błędu środowiska wykonawczego?
Dim WithEvents app As Application
Private Sub Workbook_Open()
Set app = Application
End Sub
Teraz mogę słuchać wszystkich zdarzeń skoroszytu bez konieczności drut zdarzenie do każdego skoroszytu.
Problem polega na tym, że gdy makro zgłasza wyjątek i sprawia mi musiał End makro, wszystkie zmienne globalne dostać nuked, więc zmienna app
zostanie ustawiony na Nothing
co powoduje wszystkie globalne zdarzenia nie dłuższym ognia .
Czy jest jakiś sposób, aby można było automatycznie ustawić tę zmienną na instancję Application
, gdy zostanie ona usunięta?