2017-09-08 10 views
-1

マクロを遅くする方法があるのは変だ。基本的に回避策であるDoeventsやその他の時間遅延手法を除けば、非同期実行を回避する方法があります。以下のように、私は、VBAのコードは次のように動作します:VBAマクロの実行が速すぎる

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

コードを投稿してください。そうしないと、私たちはあなたを手伝ってくれません。 – dwirony

+3

これはvbaの実行速度とは関係ありませんが、非同期に実行される関数を呼び出すように見えます –

答えて

0

あなたはexeファイル、VBS(外部プログラムを呼び出す場合:私が間違っているが、現在は続くように思われる場合

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

は許し)vbaはプロセスに関するフィードバックを全く得ていません。プログラムを呼び出して次のコード行に移動します(vbaは外部プログラムが終了したかどうかはわかりません)。 このプロセスを遅くする1つの方法は、呼び出しの間にapplication.waitまたはapplication.sleepを置くことですが、これも回避策です。あなたの実際のコードを投稿してください。おそらくさらにトラブルシューティングをすることができます。

0

RefreshAllの代わりにForループでbackgroundquery = Falseを指定してRefreshメソッドを使用してコードをリフレッシュする方法については、コードを参照してください。

For Each con In Me.Connections 
    con.ODBCConnection.BackgroundQuery = False 
    con.Refresh 
Next 
関連する問題