Pir*_*unt 5 excel vba excel-vba
我有一个带有应用程序对象的加载项.该对象声明为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
Run Code Online (Sandbox Code Playgroud)
您可以使用Workbook_BeforeClose例程和Workbook Object的Saved属性.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If ThisWorkbook.Saved = False Then
'Call save function
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1465 次 |
| 最近记录: |