问题描述
有人可以帮助我如何停止OnTime功能吗?它不能按我尝试的方式工作。
Option Explicit
Dim iTimerSet As Double
Public Sub FXKurs_Wahl()
iTimerSet = Now + TimeValue("00:05:00")
Application.OnTime iTimerSet,"FXKurs_Wahl"
End Sub
Public Sub EndeUhr()
On Error Resume Next
Application.OnTime iTimerSet,"FXKurs_Wahl",False
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call EndeUhr
End Sub
谢谢!
解决方法
的文档所述
将
Schedule
设置为False
,以清除先前用相同的Procedure
和EarliestTime
值设置的过程。
语法为.OnTime(EarliestTime,Procedure,LatestTime,Schedule)
因此,如果您使用
Application.OnTime iTimerSet,"FXKurs_Wahl"
要启动它,您需要使用
Application.OnTime EarliestTime:=iTimerSet,Procedure:="FXKurs_Wahl",Schedule:=False
停止它。请注意,iTimerSet
的值必须相同。
请确保如果多次运行FXKurs_Wahl
,则需要删除多个OnTime
过程。另外,请确保没有其他代码可操纵iTimerSet
值。
如果可能多次运行FXKurs_Wahl
,请尝试删除旧版本,然后再添加新的OnTime
Public Sub FXKurs_Wahl()
EndeUhr 'remove the old one before setting a new one
iTimerSet = Now + TimeValue("00:05:00")
Application.OnTime iTimerSet,"FXKurs_Wahl"
End Sub