Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 16556|回复: 7

[已解决]application ontime的终止

[复制链接]
发表于 2014-4-4 22:00 | 显示全部楼层 |阅读模式
VB中怎样终止正在运行的timer程序,还有在excel VBA中怎样终止正在快速运行的ontime循环程序的运行?
最佳答案
2014-4-5 09:03
本帖最后由 hwc2ycy 于 2014-4-5 09:09 编辑
金樽空对月 发表于 2014-4-5 03:57
我的程序语句是这样的:
dim runtime as date
sub runtimer()

0.9秒,你的代码来得及嘛。
时间间隔设置长点,多个几秒看效果。
0.9秒,代码直接运行不停的。
  1. Dim runtime As Date
  2. Sub runtimer()
  3.     Dim x
  4.     For x = 1 To 20
  5.         Cells(1, 1) = x + 1
  6.     Next x
  7.     Debug.Print Now
  8.     runtime = DateAdd("s", 5, Now)
  9.     Application.OnTime runtime, "runtimer"

  10. End Sub

  11. Sub teest()
  12.     Application.OnTime runtime, "runtimer", , False
  13. End Sub
复制代码
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-4-4 22:52 | 显示全部楼层
Sub stoptime()
    On Error Resume Next
    Application.OnTime Now + TimeValue("00:00:01"), "*****", , False     '*****替换为你的
End Sub
回复

使用道具 举报

发表于 2014-4-4 23:22 | 显示全部楼层
时间和过程要一一对应,否则没法取消,只有关闭EXCEL再开了。
回复

使用道具 举报

 楼主| 发表于 2014-4-5 03:57 | 显示全部楼层
759857387 发表于 2014-4-4 22:52
Sub stoptime()
    On Error Resume Next
    Application.OnTime Now + TimeValue("00:00:01"), "***** ...

我的程序语句是这样的:
dim runtime as date
sub runtimer()
dim x
for x=1 to 20
cells(1,1)=x+1
next x
runtime=dateadd("s",0.9,now)
application.ontime runtime,"runtimer"
end sub

回复

使用道具 举报

 楼主| 发表于 2014-4-5 03:57 | 显示全部楼层
金樽空对月 发表于 2014-4-5 03:57
我的程序语句是这样的:
dim runtime as date
sub runtimer()

还是没办法让它停止
回复

使用道具 举报

发表于 2014-4-5 09:03 | 显示全部楼层    本楼为最佳答案   
本帖最后由 hwc2ycy 于 2014-4-5 09:09 编辑
金樽空对月 发表于 2014-4-5 03:57
我的程序语句是这样的:
dim runtime as date
sub runtimer()

0.9秒,你的代码来得及嘛。
时间间隔设置长点,多个几秒看效果。
0.9秒,代码直接运行不停的。
  1. Dim runtime As Date
  2. Sub runtimer()
  3.     Dim x
  4.     For x = 1 To 20
  5.         Cells(1, 1) = x + 1
  6.     Next x
  7.     Debug.Print Now
  8.     runtime = DateAdd("s", 5, Now)
  9.     Application.OnTime runtime, "runtimer"

  10. End Sub

  11. Sub teest()
  12.     Application.OnTime runtime, "runtimer", , False
  13. End Sub
复制代码
回复

使用道具 举报

发表于 2017-6-27 10:10 | 显示全部楼层
hwc2ycy 发表于 2014-4-4 23:22
时间和过程要一一对应,否则没法取消,只有关闭EXCEL再开了。

您说的一一对应是什么意思,我也遇到了这个问题呢,尝试了很多种都无法关闭Application.ontime
回复

使用道具 举报

发表于 2017-12-5 18:22 | 显示全部楼层
Marcoyang 发表于 2017-6-27 10:10
您说的一一对应是什么意思,我也遇到了这个问题呢,尝试了很多种都无法关闭Application.ontime

Sub CloseTimeOn()
Application.OnTime theTime, "TimeOn", , False
End Sub
thisworkbook beforeclose代码:
call CloseTimeOn

说明:如上例thetime是动态的模块变量,将closetimeon过程放在定义thetime的同一个过程,那么在thisworkbook beforeclose事件call这个closetimeon过程可以保证动态ontime变量值一致。



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-26 14:19 , Processed in 0.338473 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表