VBA实战技巧28:自动关闭指定时间没有进行操作的工作簿 |
您所在的位置:网站首页 › vba定时运行函数公式 › VBA实战技巧28:自动关闭指定时间没有进行操作的工作簿 |
有时候,我们打开了一个工作簿,但长时间没有使用,此时,你可能想让Excel自动将其关闭。也就是说,对于某个工作簿,如果用户在指定的时间内没有进行任何操作,那么Excel会保存并关闭该工作簿。 下面的代码可以实现上述目的。 首先,在VBE中插入一个标准模块,在其中输入代码: Public RunWhen As Double Public Const NUM_MINUTES = 10 Public Sub SaveAndClose() ThisWorkbook.CloseSaveChanges:=True End Sub 你可以修改NUM_MINUTES的值,设置让工作簿在没有操作的情况下保持开启的时间。 在VBE资源管理器窗口,双击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 ErrorGoTo 0 End Sub Private Sub Workbook_SheetChange(ByVal Sh AsObject, 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 ShAs 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事件。如果在指定的时间内都没有操作工作簿,那么该工作簿将自行保存并关闭。 注:本文学习整理自www.cpearson.com,供有兴趣的朋友参考。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |