首页   

定时自动关闭工作簿

完美Excel  · Excel  · 1 周前

正文

学习Excel技术,关注微信公众号:
excelperfect

标签:VBA工作簿事件OnTime方法

有时候,我们可能想要在工作簿长时间或者在指定时间内没人使用时自动将其关闭。cpearson.com提供了一段代码,实现工作簿在指定时间内没有用户活动时,保存并关闭该工作簿。

VBE中,插入一个标准模块,输入代码:

Public RunWhen As DoublePublic Const NUM_MINUTES = 10
'保存并关闭工作簿Public Sub SaveAndClose() ThisWorkbook.Close savechanges:=TrueEnd 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", , TrueEnd Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean) On Error Resume Next Application.OnTime RunWhen, "SaveAndClose", , False On Error GoTo 0End 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", , TrueEnd 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", , TrueEnd Sub

当工作表中单元格值更改或选择更改时,上述代码都会取消并恢复OnTime事件。如果在指定的时间内两者都没有发生变化,表明该工作簿没有用户活动,将自动保存并关闭。可以修改NUM_MINUTES的值为你认为的工作簿处于非活动状态的时间。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。
欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料,并通过社群加入专门的微信讨论群,更方便交流。

© 2024 精读
删除内容请联系邮箱 2879853325@qq.com