欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 为什么KillTimer没起作用?

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有4304人关注过本帖树形打印复制链接

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

帅哥哟,离线,有人找我吗?
dwjgwsm
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:864 积分:607 威望:0 精华:0 注册:2013/3/14 23:16:32
为什么KillTimer没起作用?  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
sunni520
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:83 积分:213 威望:0 精华:0 注册:2012/11/21 11:39:07
  发帖心情 Post By:2014/7/29 20:27:53 [只看该作者]

时间格式不对,改成  time > TimeSerial( 16,30,40 )  再试试

 回到顶部
帅哥哟,离线,有人找我吗?
dwjgwsm
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:864 积分:607 威望:0 精华:0 注册:2013/3/14 23:16:32
  发帖心情 Post By:2014/7/29 21:19:01 [只看该作者]

没用!还是照样.
其实,time> "16:30:40"这个写法我是调试通过了的
[此贴子已经被作者于2014/7/29 21:19:28编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
dwjgwsm
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:864 积分:607 威望:0 精华:0 注册:2013/3/14 23:16:32
  发帖心情 Post By:2014/7/29 21:22:16 [只看该作者]


[此贴子已经被作者于2014/7/29 21:23:06编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By: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代码行到底执行过没有


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
dwjgwsm
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:864 积分:607 威望:0 精华:0 注册:2013/3/14 23:16:32
  发帖心情 Post By: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楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By: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是个什么值,要学会自己独立调试,学会用逻辑思维解决问题


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
dwjgwsm
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:864 积分:607 威望:0 精华:0 注册:2013/3/14 23:16:32
  发帖心情 Post By:2014/7/29 22:16:19 [只看该作者]

我知道了!因为if time> "16:30:40" then这句仅执行一遍,在程序刚刚运行的时候就执行过了, 所以,后面不存在再次运行该if语句的可能了!

 回到顶部
帅哥哟,离线,有人找我吗?
guotx2010
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蜘蛛侠 帖子:1366 积分:5210 威望:0 精华:7 注册:2010/12/11 18:00:33
  发帖心情 Post By:2014/7/30 8:37:33 [只看该作者]

使用Cdate(time)>Cdate("16:30:40")比较时间

 回到顶部