我有一个带有应用程序对象的加载项。该对象被声明为 WithEvents。这使我能够在每次用户保存文件时将一些数据点刷新到中央数据库。这在大多数情况下都有效。但是,有一位用户退出了 Excel 应用程序,该应用程序调用了“保存”对话框。使用未保存的文件退出 Excel 似乎意味着 WorkbookBeforeSave 事件不会触发。
只是为了强调,我已经确认当用户按下 CTRL-S 或按下保存按钮时该事件会触发。我还确认如果我退出应用程序,该事件不会触发。
我可以想到一些解决方法(例如,每 10 秒自动保存一次),但我对此并不感兴趣。任何人都可以确认这种行为和/或是否有人有补救措施?
Option Explicit
Private WithEvents mapp As Excel.Application
Private Sub mapp_WorkbookBeforeSave(ByVal Wb As Workbook, ByVal SaveAsUI As Boolean, Cancel As Boolean)
' Sanity preservation device
Msgbox "WorkbookBeforeSave event fired."
SaveSomeData Wb
End Sub