如果Excel中没有活动,请关闭工作簿
这是我的代码,理论上是有效的。我的问题是,当我键入或编辑工作表时,工作表会保存并关闭 所以它可以工作,只是当我在工作簿中工作时它根本不会重置计时器如果Excel中没有活动,请关闭工作簿,excel,vba,Excel,Vba,这是我的代码,理论上是有效的。我的问题是,当我键入或编辑工作表时,工作表会保存并关闭 所以它可以工作,只是当我在工作簿中工作时它根本不会重置计时器 Option Explicit Private Sub Workbook_Open() EndTime = Now + TimeValue("00:05:00") RunTime End Sub Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Option Explicit
Private Sub Workbook_Open()
EndTime = Now + TimeValue("00:05: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:10:00")
RunTime
End Sub
现在,这是在这个工作簿中,认为它应该包含所有内容。我错过什么了吗?计时器显然没有在应该重置的时候重置 据我所知,取消计划的唯一原因可能是:
- 过程名称不同(CloseWB)或
- 自任务最初计划或运行后,EndTime已更改
- 运行时执行某些操作使工作簿关闭
中可以看出,这就是全部代码。
不,这不是全部代码,我正试图解释这一点!我找到了基于@AlistairWeir链接到您的OQ的完整代码!如果你不能提供缺失的信息,那么很难提供帮助。我运行了你的原始代码,它对我有效。可能您正在CloseWB设置为运行期间键入/编辑单元格,但只有Workbook\u SheetChange事件没有触发以重置您的时间,因为Excel直到您按Enter键并实际更改某些内容后才识别该事件。