以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  [求助]VBA如何实现每天特定时间执行一个动作?  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=10724)

--  作者:z7c9
--  发布时间:2012/3/23 16:35:51
--  [求助]VBA如何实现每天特定时间执行一个动作?

比如每天早上8点发短信报告账户的动态权益。

[此贴子已经被作者于2012-3-23 16:37:04编辑过]

--  作者:rushtaotao
--  发布时间:2012/3/23 16:41:02
--  

估计只能等版主了


--  作者:guotx2010
--  发布时间:2012/3/23 17:23:51
--  

使用定时器

在Application_VBAStart过程增加下面的定时器

Call Application.SetTimer(1,300*1000)     \'每隔30分执行一次

 

Sub Application_Timer(ID)
    if Cdate(time)="08:00:00" then

           ...

    end if
End Sub

 

至于账户权益,可以使用Order.Account2(6,Account)来获取,然后就是发送到你的邮箱的代码了。

 

[此贴子已经被作者于2012-3-23 17:30:49编辑过]

--  作者:z7c9
--  发布时间:2012/3/24 8:25:36
--  
以下是引用guotx2010在2012-3-23 17:23:51的发言:

使用定时器

在Application_VBAStart过程增加下面的定时器

Call Application.SetTimer(1,300*1000)     \'每隔30分执行一次

 

Sub Application_Timer(ID)
    if Cdate(time)="08:00:00" then

           ...

    end if
End Sub

 

至于账户权益,可以使用Order.Account2(6,Account)来获取,然后就是发送到你的邮箱的代码了。

 

[此贴子已经被作者于2012-3-23 17:30:49编辑过]

 

如果在7点50分启动金字塔,30分钟之后是8点20分,就不可能发短信了吧?

[此贴子已经被作者于2012-3-24 8:27:53编辑过]

--  作者:guotx2010
--  发布时间:2012/3/24 18:22:17
--  
自己算好时间呀,30分可以改为20分的。
--  作者:z7c9
--  发布时间:2012/3/24 19:55:38
--  
以下是引用guotx2010在2012-3-24 18:22:17的发言:
自己算好时间呀,30分可以改为20分的。

图片点击可在新窗口打开查看,启动金字塔还要算时间呀


--  作者:guotx2010
--  发布时间:2012/3/25 18:06:28
--  

时间间隔可以调到足够小呀,比如10秒执行一次,那么肯定会执行到的,你也可以使用一个时间范围,比如,8:00-8:30这样,错开的机会就更小了。

总值一句话,人是足够聪明的动物,不要自己把自己憋死了。

时间间隔过大会漏掉,过小会导致系统占用资源过大,我们需要在这两种情况中平衡。

 


--  作者:rushtaotao
--  发布时间:2012/8/24 16:31:02
--  

求指点

按照版主们的问题 以下代码是不是每秒输出111?

sub vbastart()
 Call Application.SetTimer(1,1*1000)   
end sub
 

Sub Application_Timer(ID)
   
    call Application.MsgOut("111")
   
End Sub


--  作者:guotx2010
--  发布时间:2012/8/24 16:41:34
--  

sub vbastart()
错了

改为:

sub Application_VBAStart()

 


--  作者:admin
--  发布时间:2012/8/24 16:41:41
--  
是的