以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  再问一个VBA问题 如何在窗体里使用SETtime  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=3662)

--  作者:Morgan
--  发布时间:2010/11/3 12:43:29
--  再问一个VBA问题 如何在窗体里使用SETtime

我使用在FUNCTION里做了一个时间触发的程序 我想用到窗体里 我在窗体里有一个按钮,想按一下按钮就开始按时间循环,但是SUB里不能放SUB,那我想放在代码的最上面,然后我在按钮的SUB里调用APPLICATION_VBAStart()和APPLICATION_Timer(ID),好像达不到我想要的效果,这个窗体载入的时候就被调用了APPLICATION_VBAStart()和APPLICATION_Timer(ID),而不是在我按按钮的时候。。。谢谢高手


--  作者:admin
--  发布时间:2010/11/3 12:48:15
--  
APPLICATION_VBAStart()代码拷贝到窗体里就行了,金字塔的VBA所有代码都是全局的,任何一个模块之间的代码和变量都可以通用
--  作者:Morgan
--  发布时间:2010/11/3 12:58:36
--  

还是不行,APPLICATION_VBAStart()的代码就只有,我拷贝到这个按钮里去了,APPLICATION_Timer(2)里的代码我放在最上面

Sub xxx_CommandButton1_Click()

if xxx_CheckBox7.value=true then
call Application.SetTimer(2,5000)
APPLICATION_Timer(2)
end if

end sub

 

好像还是不行,如果我把APPLICATION_Timer(2)里的代码也放入这个按钮的话就按时间循环了。。


--  作者:admin
--  发布时间:2010/11/3 13:12:01
--  

APPLICATION_Timer是事件处理过程函数,不要放在代码里直接执行,此外由于模块间是全局的,故APPLICATION_Timer只能在金字塔VBA中只有一个,超过1个将导致无法正常工作。

你应该删除APPLICATION_VBAStart()代码里的call Application.SetTimer(2,5000),然后将其放在CommandButton1_Click()事件里。

 

Sub xxx_CommandButton1_Click()

if xxx_CheckBox7.value=true then
call Application.SetTimer(2,5000)

end if

end sub