如果超过 5 分钟没有活动,有没有办法让打开的工作表自行关闭?
例如:我在工作表上工作了一段时间,然后在该工作表打开的情况下离开 20 分钟。网络上的某个人需要访问工作表,但不能因为我在上面。
我想要它,以便在我离开办公桌超过 5 分钟后,工作表将自行保存并关闭所述工作表。
这可能吗?如果有怎么办?我可以找到显示如何保存和关闭工作表的脚本,但我还没有找到使用计时器的脚本......
这是来自链接的信息,所以这个问题可以作为参考:
将此代码作为模块插入:
' DateTime : 09/05/2007 08:43
' Author : Roy Cox (royUK)
' Website : Clck here for more examples and Excel Consulting
' Purpose : Place in a standard module
' Disclaimer; This code is offered as is with no guarantees. You may use it in your
' projects but please leave this header intact.
'---------------------------------------------------------------------------------------
Option Explicit
Public EndTime
Sub RunTime()
Application.OnTime _
EarliestTime:=EndTime, _
Procedure:="CloseWB", _
Schedule:=True
End Sub
Sub CloseWB()
Application.DisplayAlerts = False
With ThisWorkbook
.Save
.Saved = True
.Close
End With
End Sub
将其插入“ThisWorkbook”
Private Sub Workbook_Open()
'--> Set Time Below
EndTime = Now + TimeValue("00:00:00")
RunTime
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If EndTime Then
Application.OnTime _
EarliestTime:=EndTime, _
Procedure:="CloseWB", _
Schedule:=False
EndTime = Empty
End If
'--> Set Time Below
EndTime = Now + TimeValue("00:00:00")
RunTime
End Sub
好的,在下面的原始答案中,经过更多研究,我想出了自己的答案。
打开开发人员部分后,您会找到工作表,将下面的代码放入 ThisWorkbook。这将允许您的代码在整个工作表中运行。我现在设置了一个 10:00 分钟的初始计时器,如果事后有活动,则设置一个 05:00 分钟的计时器。您可以将其更改为您想要的任何内容。
Option Explicit
Private Sub Workbook_Open()
EndTime = Now + TimeValue("00:10:00")
RunTime
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If EndTime Then
Application.OnTime _
EarliestTime:=EndTime, _
Procedure:="CloseWB", _
Schedule:=False
EndTime = Empty
End If
EndTime = Now + TimeValue("00:05:00")
RunTime
End Sub
这下面的部分需要进入一个新创建的模块,随意命名,我的叫SaveWB
Option Explicit
Public EndTime
Sub RunTime()
Application.OnTime _
EarliestTime:=EndTime, _
Procedure:="CloseWB", _
Schedule:=True
End Sub
Sub CloseWB()
Application.DisplayAlerts = False
With ThisWorkbook
ThisWorkbook.Close savechanges:=True
End With
End Sub
我将代码更改为:
With ThisWorkbook
.Save
.Saved = True
.Close
End With
到它上面的东西。
With ThisWorkbook
ThisWorkbook.Close savechanges:=True
End With
我创建的部分作品,最初发布的部分作品在关闭但不保存。随心所欲地使用它,按照你认为合适的方式改变它,但我很高兴我让它工作了。