Excel精英培训网

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

[已解决]请教sleep函数具体用法

[复制链接]
发表于 2017-5-9 17:09 | 显示全部楼层 |阅读模式
本帖最后由 france723 于 2017-5-9 17:36 编辑

资料上说,VBA使用sleep函数需要特别声明, 请教各位大神.
比如单元格[A1]是一个数据源, 数值自动变化, 每隔两秒提取[A1]数值, 写入B列.
最佳答案
2017-5-9 17:29
我常用test3,不需要声明引用
  1. Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
  2. Sub test1()
  3.     Do While True
  4.         Debug.Print [A1]
  5.         Sleep 2000
  6.         DoEvents
  7.     Loop
  8. End Sub
  9. Sub test2()
  10.     Do While True
  11.         Debug.Print [A1]
  12.         Application.Wait (Now + TimeValue("00:00:02"))
  13.         DoEvents
  14.     Loop
  15. End Sub
  16. Sub test3()
  17. 1:
  18.     t = Timer
  19.     Do While Timer < t + 2
  20.         DoEvents
  21.     Loop
  22.     Debug.Print [A1]
  23.     GoTo 1
  24. End Sub
复制代码
发表于 2017-5-9 17:29 | 显示全部楼层
回复

使用道具 举报

发表于 2017-5-9 17:29 | 显示全部楼层    本楼为最佳答案   
我常用test3,不需要声明引用
  1. Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
  2. Sub test1()
  3.     Do While True
  4.         Debug.Print [A1]
  5.         Sleep 2000
  6.         DoEvents
  7.     Loop
  8. End Sub
  9. Sub test2()
  10.     Do While True
  11.         Debug.Print [A1]
  12.         Application.Wait (Now + TimeValue("00:00:02"))
  13.         DoEvents
  14.     Loop
  15. End Sub
  16. Sub test3()
  17. 1:
  18.     t = Timer
  19.     Do While Timer < t + 2
  20.         DoEvents
  21.     Loop
  22.     Debug.Print [A1]
  23.     GoTo 1
  24. End Sub
复制代码
回复

使用道具 举报

发表于 2017-5-9 17:34 | 显示全部楼层
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub text()
Dim a As Range
For Each a In Sheet1.[b1:b20]
a = Sheet1.[a1]
Sleep 2000
Next
End Sub

回复

使用道具 举报

 楼主| 发表于 2017-5-9 17:35 | 显示全部楼层
大灰狼1976 发表于 2017-5-9 17:29
用ontime会好一点吧。

谢谢师父开拓思路
回复

使用道具 举报

 楼主| 发表于 2017-5-9 17:37 | 显示全部楼层
327718098 发表于 2017-5-9 17:34
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub text()
Dim a As Range

谢谢
回复

使用道具 举报

发表于 2017-5-9 23:07 | 显示全部楼层
timer注意要加上过午夜判断,如果你打算长时间运行的话。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 07:44 , Processed in 0.288657 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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