Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共9 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:为什么KillTimer没起作用?

1楼
dwjgwsm 发表于:2014/7/29 16:38:55
Sub cs()

Call Application.SetTimer(0,5*1000) 
if time> "16:30:40" then call Application.KillTimer(0)

'if time> "16:30:40" then
'  application.msgout "yes"
'else
'  application.msgout "no"
'end if

End Sub

Sub Application_Timer(ID)
Application.msgout Cdate(time) & ",0号计时器触发了"
End Sub

16:29:59,0号计时器触发了
16:30:04,0号计时器触发了
16:30:09,0号计时器触发了
16:30:14,0号计时器触发了
16:30:19,0号计时器触发了
16:30:24,0号计时器触发了
16:30:29,0号计时器触发了
16:30:34,0号计时器触发了
16:30:39,0号计时器触发了
16:30:44,0号计时器触发了
16:30:49,0号计时器触发了
16:30:54,0号计时器触发了
16:30:59,0号计时器触发了
16:31:04,0号计时器触发了

[此贴子已经被作者于2014/7/29 16:39:21编辑过]
2楼
sunni520 发表于:2014/7/29 20:27:53
时间格式不对,改成  time > TimeSerial( 16,30,40 )  再试试
3楼
dwjgwsm 发表于:2014/7/29 21:19:01
没用!还是照样.
其实,time> "16:30:40"这个写法我是调试通过了的
[此贴子已经被作者于2014/7/29 21:19:28编辑过]
4楼
dwjgwsm 发表于:2014/7/29 21:22:16

[此贴子已经被作者于2014/7/29 21:23:06编辑过]
5楼
王锋 发表于:2014/7/29 21:23:00
Call Application.SetTimer(0,5*1000) 
if time> "16:30:40" then
application.msgout "yes"
call Application.KillTimer(0)
end if
 
加上调试语句看看killtimer代码行到底执行过没有
6楼
dwjgwsm 发表于:2014/7/29 21:38:07
很神奇啊

单独调试
if time> "21:30:40" then          
application.msgout "yes"
else
application.msgout "no"
end if

这句是正确的,通过了的.但是按照王峰的写法调试
Call Application.SetTimer(0,5*1000) 
if time> "16:30:40" then
application.msgout "yes"
call Application.KillTimer(0)
end if
到了时间点竟然条件语句不能进入if的语句块,没输出"yes"!我也改成2楼的方法试过了,也是一样.何解???
7楼
王锋 发表于:2014/7/29 21:47:52
Call Application.SetTimer(0,5*1000) 
application.msgout time
if time> "16:30:40" then
application.msgout "yes"
call Application.KillTimer(0)
end if
 
再加上调试语句看看time是个什么值,要学会自己独立调试,学会用逻辑思维解决问题
8楼
dwjgwsm 发表于:2014/7/29 22:16:19
我知道了!因为if time> "16:30:40" then这句仅执行一遍,在程序刚刚运行的时候就执行过了, 所以,后面不存在再次运行该if语句的可能了!
9楼
guotx2010 发表于:2014/7/30 8:37:33
使用Cdate(time)>Cdate("16:30:40")比较时间
共9 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.03906 s, 2 queries.