VBA宏运行速度太快

时间:2017-09-08 13:25:47

标签: excel vba excel-vba

奇怪的是,我找到了减缓宏观的方法。除了Doevents和其他时间延迟技术(基本上是一种解决方法)之外,还有一种方法可以解决异步执行问题。在中,我希望VBA代码的行为如下:

start executing line 1>finish executing line 1>move to line 2;

如果我错了,请原谅,但目前看来似乎如此:

Start executing line 1>without caring whether line 1 finished or not start executing line2

2 个答案:

答案 0 :(得分:0)

如果您正在调用外部程序(vbs,exe),那么vba根本不会获得有关该进程的任何反馈。它调用程序并转到下一行代码(vba不知道外部程序是否/何时完成)。 减慢此过程的一种方法是在调用之间放置application.wait或application.sleep,但这也是一种解决方法。请发布您的实际代码,也许我们可以进一步排查问题。

答案 1 :(得分:0)

如果代码是关于刷新数据的,请在For循环中使用带有backgroundquery = False的Refresh方法而不是RefreshAll。

For Each con In Me.Connections
    con.ODBCConnection.BackgroundQuery = False
    con.Refresh
Next