如果超过5分钟没有活动,是否有办法让开放式工作表自行关闭?
例如:我在工作表上工作了一段时间,然后在打开表单的情况下离开20分钟。网络上的某个人需要访问该表,但不能因为我在其上。
我想要它,以便在我离开办公桌超过5分钟后,纸张将自行保存并关闭所述纸张。
这可能吗?如果是这样的话?我可以找到脚本来展示如何保存和关闭工作表,但我还没有找到一个使用计时器的脚本......
答案 0 :(得分:3)
这是链接中的信息,因此可以将此问题用作参考:
将此代码插入模块:
' 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
答案 1 :(得分:2)
好的,在下面的原始答案中,经过一番研究后,我想出了自己的答案。
打开开发人员部分后,您将找到工作表,将此代码放在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
我创建的部分有效,最初发布的部分在关闭时起作用但不保存。做你想做的事情,按你认为合适的方式改变它,但我很高兴能让它发挥作用。