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