有时候,我们可能想要在工作簿长时间或者在指定时间内没人使用时自动将其关闭。cpearson.com提供了一段代码,实现工作簿在指定时间内没有用户活动时,保存并关闭该工作簿。Public RunWhen As Double
Public Const NUM_MINUTES = 10
'保存并关闭工作簿
Public Sub SaveAndClose()
ThisWorkbook.Close savechanges:=True
End Sub
双击ThisWorkbook打开其代码模块,输入代码:Private Sub Workbook_Open()
On Error Resume Next
Application.OnTime RunWhen, "SaveAndClose", , False
On Error GoTo 0
RunWhen = Now + TimeSerial(0, NUM_MINUTES, 0)
Application.OnTime RunWhen, "SaveAndClose", , True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.OnTime RunWhen, "SaveAndClose", , False
On Error GoTo 0
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
Application.OnTime RunWhen, "SaveAndClose", , False
On Error GoTo 0
RunWhen = Now + TimeSerial(0, NUM_MINUTES, 0)
Application.OnTime RunWhen, "SaveAndClose", , True
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _
ByVal Target As Range)
On Error Resume Next
Application.OnTime RunWhen, "SaveAndClose", , False
On Error GoTo 0
RunWhen = Now + TimeSerial(0, NUM_MINUTES, 0)
Application.OnTime RunWhen, "SaveAndClose", , True
End Sub
当工作表中单元格值更改或选择更改时,上述代码都会取消并恢复OnTime事件。如果在指定的时间内两者都没有发生变化,表明该工作簿没有用户活动,将自动保存并关闭。可以修改NUM_MINUTES的值为你认为的工作簿处于非活动状态的时间。欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。
欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料,并通过社群加入专门的微信讨论群,更方便交流。