以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 高级功能研发区 (http://weistock.com/bbs/list.asp?boardid=5) ---- 为什么KillTimer没起作用? (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=68002) |
-- 作者:dwjgwsm -- 发布时间:2014/7/29 16:38:55 -- 为什么KillTimer没起作用? 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编辑过]
|
-- 作者:sunni520 -- 发布时间:2014/7/29 20:27:53 -- 时间格式不对,改成 time > TimeSerial( 16,30,40 ) 再试试 |
-- 作者:dwjgwsm -- 发布时间:2014/7/29 21:19:01 -- 没用!还是照样. 其实,time> "16:30:40"这个写法我是调试通过了的
[此贴子已经被作者于2014/7/29 21:19:28编辑过]
|
-- 作者:dwjgwsm -- 发布时间:2014/7/29 21:22:16 -- [此贴子已经被作者于2014/7/29 21:23:06编辑过]
|
-- 作者:王锋 -- 发布时间: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代码行到底执行过没有
|
-- 作者: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楼的方法试过了,也是一样.何解??? |
-- 作者:王锋 -- 发布时间: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是个什么值,要学会自己独立调试,学会用逻辑思维解决问题
|
-- 作者:dwjgwsm -- 发布时间:2014/7/29 22:16:19 -- 我知道了!因为if time> "16:30:40" then这句仅执行一遍,在程序刚刚运行的时候就执行过了, 所以,后面不存在再次运行该if语句的可能了! |
-- 作者:guotx2010 -- 发布时间:2014/7/30 8:37:33 -- 使用Cdate(time)>Cdate("16:30:40")比较时间 |