VBA停止开机时间功能

问题描述

有人可以帮助我如何停止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

谢谢!

解决方法

根据Application.OnTime method

的文档所述

Schedule设置为False,以清除先前用相同的ProcedureEarliestTime值设置的过程。

语法为.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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...