2016-04-22 9 views
0

Wie der Titel vermuten lässt, habe ich ein Problem mit Excel's Workbook_BeforeClose-Event-Handler. Ich weiß, dass ich die richtige Methodensignatur verwende (siehe unten), weil es in der Vergangenheit funktioniert hat, und ich habe den Event-Handler korrekt in das "ThisWorkbook" -Modul des VBA-Editors gestellt. Ich habe jedoch festgestellt, dass diese Methode nicht ausgeführt wird, wenn ich innerhalb der VBE (in anderen Modulen) eine signifikante Menge an Coding mache. Auch wenn ich Haltepunkte innen platziere, werden die Haltepunkte nicht berührt, bevor die Arbeitsmappe geschlossen wird. Dies geschieht wiederum nur, wenn ich mich mit anderen Modulen im VBE beschäftigt habe. Wenn ich die Arbeitsmappe nur öffne und sofort schließe, läuft diese Methode gut und die Breakpoints werden getroffen. Das Speichern oder nicht das Speichern der Arbeitsmappe scheint keinen Unterschied zu machen, und dieses Problem tritt in Excel 2013 und 2016 auf (das Öffnen der Arbeitsmappe in früheren Versionen wurde nicht versucht). Dieses Problem fängt wirklich an, meinen Arbeitsfluss zu behindern, wenn jemand also darüber nachdenkt, warum mein Workbook_BeforeClose-Handler nicht aufgerufen wird, würde ich die Hilfe sehr schätzen!Workbook_BeforeClose wird nicht ausgeführt, nachdem der VBA-Editor verwendet wurde

Private Sub Workbook_BeforeClose(Cancel As Boolean) 
    'More code... 
End Sub 

Antwort

0

Nach posting this question auf dem Mr. Excel Forum wurde ich die Lösung gegeben: Einige der anderen Module, die ich enthaltenen Optimierungs Code Bearbeitung wurde. Dies beinhaltete die Deaktivierung von Anwendungsereignissen, während das Makro ausgeführt wurde, und das erneute Einschalten nach Abschluss des Makros. Während des Debuggens habe ich das Makro jedoch offensichtlich gelegentlich angehalten, bevor es abgeschlossen wurde, sodass Anwendungsereignisse nie wieder aktiviert wurden!

Also jetzt alles, was ich tun muss, ist auszuführen "Application.EnableEvents = True" im Direktfenster, bevor ich versuche, die Arbeitsmappe zu schließen, und meine Event-Handler läuft gut!