首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OnTime函数混淆

OnTime函数混淆
EN

Stack Overflow用户
提问于 2016-08-17 06:30:10
回答 1查看 165关注 0票数 2

我在下面写了VBA代码,每5秒执行一次,但它不起作用。

代码语言:javascript
复制
Option Explicit

Public RunWhen As Double
Public Const cRunIntervalSeconds = 5 ' two minutes
Public Const cRunWhat = "TheSub"  ' the name of the procedure to run

Sub StartTimer()
    RunWhen = Now + TimeValue(0, 0, cRunIntervalSeconds)
    Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, _
        Schedule:=True
End Sub


Sub TheSub()
    ''''''''''''''''''''''''
    ' Your code here
    ''''''''''''''''''''''''
    MsgBox "hi this is working"
    StartTimer  ' Reschedule the procedure
End Sub

我在这里错过了什么?

另外,下面这样的简单表达式也不起作用

代码语言:javascript
复制
Sub test()
    Application.ontime (now() + TimeValue("0:0:5")),"test"
End Sub
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-17 06:45:48

您应该使用TimeSerial函数,而不是TimeValue

代码语言:javascript
复制
Option Explicit

Public RunWhen As Double
Public Const cRunIntervalSeconds = 5 ' two minutes
Public Const cRunWhat = "TheSub"  ' the name of the procedure to run

Sub StartTimer()
    RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds)
    Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat
End Sub


Sub TheSub()
    ''''''''''''''''''''''''
    ' Your code here
    ''''''''''''''''''''''''
    Debug.Print "hi this is working"
    StartTimer  ' Reschedule the procedure
End Sub

这是可行的,您可以查看VBE的即时窗口来查看它的运行情况。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38989522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档