gpt4 book ai didi

excel - application.ontime 未取消或在后台运行

转载 作者:行者123 更新时间:2023-12-04 20:31:15 24 4
gpt4 key购买 nike

我正在使用 Application.Ontime 命令在一段时间不活动(10 分钟)后自动关闭电子表格。

以下代码似乎可以正常工作,但是,如果您自己手动关闭工作表,工作簿似乎仍然在后台处于事件状态,并且在最后指定的“结束时间”将自行打开,以便它可以自行关闭。

这在 VBA 代码窗口中也很明显,因为在 CloseWB 宏运行并且 excel 工作簿似乎已关闭后,它仍列在 VBA 项目资源管理器窗口中。

Sub RunTime()
Static EndTime
If Not EndTime = "" Then ActiveWorkbook.Application.OnTime EndTime, "CloseWB", , False
EndTime = Now + TimeValue("00:10:00")
ActiveWorkbook.Application.OnTime EndTime, "CloseWB", , True
End Sub

Sub CloseWB()

Application.DisplayAlerts = False
With ThisWorkbook
.Save
.Close
End With
End Sub

我不想完全关闭 excel (application.quit),以防用户打开其他工作簿但需要尝试停止在后台运行的特定工作簿。

有任何想法吗?

最佳答案

您需要停止计时器。声明 EndTime作为公共(public)变量,然后在 Workbook_BeforeClose 中关闭计时器事件。

Option Explicit

Public EndTime As Variant

Sub RunTime()
If Not EndTime = "" Then ActiveWorkbook.Application.OnTime EndTime, "CloseWB", , False
EndTime = Now + TimeValue("00:10:00")
ActiveWorkbook.Application.OnTime EndTime, "CloseWB", , True
End Sub

Sub CloseWB()

Application.DisplayAlerts = False
With ThisWorkbook
.Save
.Close
End With
End Sub

在工作簿对象中:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.OnTime earliesttime:=EndTime, procedure:="CloseWB", schedule:=False
End Sub

关于excel - application.ontime 未取消或在后台运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50273166/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com