以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  请教,如何在下午 13:40 定时执行一个vba 模块里面的某过程  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=13617)

--  作者:jazzson
--  发布时间:2012/8/12 17:08:05
--  请教,如何在下午 13:40 定时执行一个vba 模块里面的某过程

因为应用模式,需要在下午 13:40 定时执行一个vba 模块里面的Test() 过程,找了好几资料,还没有成功

 

因为第一次使用VBA,请大家帮忙一下,谢谢


--  作者:jazzson
--  发布时间:2012/8/12 17:51:56
--  金字塔可以设置时间等分周期吗?

我新创建了一个模块,模块代码如下
 
Public Sub A085()
    Application.OnTime TimeValue("9:30:00"), "my_Procedure"
End Sub
 
Public Sub my_Procedure()
    MsgBox "现在是9点30分,您在10点有一个约会!"
End Sub
 
alt+f8 执行宏 A085 提示 编译器错误 “438”,对象不支持此属性或方法

 

请高手帮忙看看,谢谢
 
 


--  作者:guotx2010
--  发布时间:2012/8/12 21:35:33
--  

使用application对象的settimer方法设置定时器,在定时器的事件中判断时间。

application对象的使用方法请参考:http://www.weistock.com/bbs/dispbbs.asp?boardid=5&Id=11642

 

在application_timer(id)事件中可以这样判断时间

if cdate(time)="13:40:00" then

    你的代码

end if

 


--  作者:guotx2010
--  发布时间:2012/8/12 21:42:04
--  

还是完整写一个代码给你吧

 

sub application_Vbastart()                     \'VBA启动时执行,设置一个0号定时器,5秒轮询一次

    call application.Settimer(0,5000)

end sub

 

sub application_timer(ID)                      \'定时器事件,判断时间是否与你要求的时间一致,一致就执行你的代码

    if cdate(time)="13:40:00" then

          你的代码

    end if

end sub

 

sub application_vbaend()                        \'vba停止时停止计时器

    call application.killtimer(0)

end sub

 


--  作者:jazzson
--  发布时间:2012/8/13 9:15:59
--  

谢谢大侠指点!

已经调试成功!

[此贴子已经被作者于2012-8-13 9:16:21编辑过]