1秒延迟持续近2秒

时间:2015-10-14 12:29:36

标签: excel vba excel-vba timedelay

我正在编写一个代码,用于将数据从一个电子表格复制到另一个电子表格中。我已经尝试过Application.Wait和Sleep,但是他们阻止了两个电子表格,所以我决定使用do until循环。它有效,但1秒持续近2秒,我不知道为什么。所以我只在代码中留下了循环,但测试给出了相同的结果(花了大约95秒)。有什么建议吗?这是代码:

VCS

1 个答案:

答案 0 :(得分:1)

这只是一个近似的延迟,因为你真的不知道还有什么通过消息队列并由DoEvents命令处理(一个字btw)。另一种方法是使用Application.OnTime method从内部调用该过程。

Sub timed_routine()
    Application.Interactive = False
    ThisWorkbook.Worksheets("Sheet1").Cells(1, 1) = 1
    Application.Interactive = True
    'Debug.Print Timer
    Application.OnTime Now + TimeSerial(0, 0, 1), "timed_routine"
End Sub

Debug.Print Timer命令取消注释并处于活动状态时,此例程在大约1.015秒内循环。