以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  高级功能研发区  (http://222.73.7.161/bbs/list.asp?boardid=5)
----  定时器整点运行  (http://222.73.7.161/bbs/dispbbs.asp?boardid=5&id=65589)

--  作者:youop
--  发布时间:2014/5/28 23:37:52
--  定时器整点运行
vba里的定时器Sub Application_Timer(Id),然后在

Call Application.Settimer(0,300000)

 

就是每隔5分钟执行一次,但是,我想让他整点运行,就是开盘以后9:05,9:10,9:15,在这样的整点每隔5分钟运行一次,这样运行,应该怎么操作呢?;


--  作者:admin
--  发布时间:2014/5/29 14:01:11
--  
在定时器中判断当前计算机时间是不是到了你那个几个时间节点不就行了?
--  作者:youop
--  发布时间:2014/5/29 14:29:51
--  
一天5分钟有45个节点。。。,用算法计算?
--  作者:admin
--  发布时间:2014/5/29 17:47:20
--  

Sub APPLICATION_VBAStart()
    Call Application.Settimer(0,1000)
End Sub


Sub APPLICATION_Timer(ID)
   if Hour(now) >= 9 And Hour(now) <= 15 And Minute(Now) > 1 And Second(Now) < 1 Then
      DifMin = Minute(Now) Mod 5
      
      IF DifMin = 0 Then
         \'这里执行你的操作
      End If
   End if
End Sub

 

这里的Settimer(0,1000)目的是1秒执行一次检测,目的是保证正好能在刚过执行点时能检测到,如果你的模型只需要间隔5分钟而不需要那么精确卡在时间点,将这里改成60秒即可,另外去掉And Second(Now) < 1这句即可


--  作者:youop
--  发布时间:2014/5/29 21:21:21
--  
谢谢!没想到顺便把算法也给我了!实在太给力了!太谢谢了;