我有一個外接與應用對象。該對象被聲明爲WithEvents。這使我可以在每次用戶保存文件時將某些數據點刷新到中央數據庫。這在大部分時間都適用。但是,有一個用戶退出Excel應用程序,該應用程序調用保存對話框。看起來,使用未保存的文件退出Excel意味着WorkbookBeforeSave事件不會觸發。Excel的VBA - 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
事件還是會發生?也許你想確認'Application.enableEvents = True' – Larry
是的,如果我使用CTRL-S保存工作簿或按功能區中的保存按鈕,事件會觸發。不過,如果我退出Excel(ALT-F4),那麼我會提示保存文件,但WorkbookBeforeSave事件不會被解僱。如果在Application對象中有OnQuit之類的東西,我會使用它。但是,我沒有看到這樣的事情。 – PirateGrunt