Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖
楼主: 上清宫主

[已解决]征集让vba暂停零点几秒的方法

  [复制链接]
发表于 2012-2-9 10:27 | 显示全部楼层
Timer 函数示例
本示例使用 Timer 函数来暂停应用程序。同时用 DoEvents 在暂停期间将控制让给其他进程。
Dim PauseTime, Start, Finish, TotalTimeIf (MsgBox("Press Yes to pause for 5 seconds", 4)) = vbYes Then    PauseTime = 5    ' 设置暂停时间。    Start = Timer    ' 设置开始暂停的时刻。    Do While Timer < Start + PauseTime        DoEvents    ' 将控制让给其他程序。    Loop    Finish = Timer    ' 设置结束时刻。    TotalTime = Finish - Start    ' 计算总时间。    MsgBox "Paused for " & TotalTime & " seconds"Else    EndEnd If 注:03版Excel帮助文件里有。

点评

这示例核心方法和2楼几乎相同。代码变成一段话,看得好辛苦哇  发表于 2012-2-9 11:01
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

发表于 2012-2-9 10:54 | 显示全部楼层
本帖最后由 爱疯 于 2012-2-9 11:08 编辑

很不错的贴,学习了!
我发现,按同样方法来比较,4楼办法好像是有问题



  1. Sub main()
  2.     Dim t
  3.     Debug.Print
  4.     Debug.Print Timer
  5.     '每次只启用一个call
  6.     Call delay          '2楼
  7.     Call PauseHalfSec   '3楼
  8.     Call aa             '4楼
  9.     Debug.Print Timer
  10. End Sub

  11. Sub delay()
  12.     Dim t
  13.     t = Timer
  14.     Do While Timer - 0.5 < t
  15.     Loop
  16. End Sub

  17. Sub PauseHalfSec()
  18.     Dim S
  19.     S = Timer
  20.     Do
  21.     Loop Until Timer - S >= 0.5
  22. End Sub

  23. Sub aa()
  24.     Application.Wait (Now + TimeValue("0:00:05") / 10)
  25. End Sub
复制代码

回复

使用道具 举报

发表于 2012-2-9 11:45 | 显示全部楼层
学习了,以后用到可以来这里回顾了
回复

使用道具 举报

发表于 2012-2-9 17:34 | 显示全部楼层
sleep是最直接最简单的
如果每0.几秒运行一次的话可以考虑用settimer
回复

使用道具 举报

发表于 2012-2-9 17:38 | 显示全部楼层
本帖最后由 吕?布 于 2012-2-9 17:40 编辑

借用爱疯的代码做了个测试

结论:500毫秒时delay,PauseHalfSec与
DelayEx差不多,aa根本不能做1秒以延时
征集让vba暂停零点几秒的方法.rar (9.68 KB, 下载次数: 14)
回复

使用道具 举报

发表于 2017-10-10 10:03 | 显示全部楼层
好方法
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 07:02 , Processed in 0.340162 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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