以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 高级功能研发区 (http://www.weistock.com/bbs/list.asp?boardid=5) ---- 建议金字塔增加Application.OnTime功能 (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=183409) |
-- 作者:qq代人发帖 -- 发布时间:2020/12/11 13:19:11 -- 建议金字塔增加Application.OnTime功能 请教:建议金字塔增加Application.OnTime功能,方便VBA程序降低系统消耗,每隔一定时间运行一次软件。目前金字塔只有Application.setTimer Sub macro_timer() \'Tells Excel when to next run the macro. Application.OnTime Now + TimeValue("00:00:1"), "my_macro" End Sub Sub my_macro() \'Macro code that you want to run. MsgBox "This is my sample macro output." \'Calls the timer macro so it can be run again at the next interval. Call macro_timer End Sub |
-- 作者:yukizzc -- 发布时间:2020/12/11 13:55:09 -- 这个和计时器有啥区别呢 |
-- 作者:haiquan5 -- 发布时间:2020/12/11 14:31:39 -- 区别是:计时起点不一样。 计时器是从程序启动开始计时,比如计时器是5秒,然后执行一次代码,如果这段代码运行的时间是3秒,下一次执行就是2秒以后。而Application.OnTime函数,Application.OnTime Now + TimeValue("00:00:05"), "my_macro" 设定的是在这段代码完成后,比如在目前时间基础上增加5秒钟,5秒到了之后再开始运行代码。 计时器是一开始程序就运行着,始终没有停止过。而Application.OnTime函数是到了时间才运行。我的理解是这样的,不知是否正确。
|
-- 作者:guotx2010 -- 发布时间:2021/3/30 15:46:26 -- 代码的执行时间你是无法预计的,你可以设置一个全局变量,初始值设为0,在代码进入的地方,设置为1,运行完之后设置为0,在ontimer事件中, 判断这个变量是否为0,是就进入循环,不是就不进入,这样就可以避免上一次的操作还没有完成,下一次事件又进入了。 ______________________________ QQ:253675026 wechat:guotx- |