私は、問題を再現するために、簡単なコードを書いた:VBA:画面が連続してコピーして貼り付けた後、数秒間フリーズ
Sub test()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For i = 1 To 1000
Range("A" & i).Copy Destination:=Range("B" & i)
Next
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
プログラムが完了した後、私は、上記のプログラムブロックを実行した場合、画面が約5秒間フリーズしてから、コントロールがユーザーに解放されます。
コードのコピー回数をコードの1000から他の値に変更すると、フリーズ時間がコピー数に比例することがわかります。
これは私のコンピュータの問題ですか、実際はすべてのコンピュータで発生しますか?これをどうすれば解決できますか?
以下、それについての記事へのリンクは良いあなたはそれがない時に、後にフリーズしますか? – GSerg
はい、ループの後にポップアップするユーザーフォームを追加しようとしました。 5秒後にユーザーフォームを閉じることができます。 – Pingu
計算されているかもしれませんが、実際に反復回数に依存する必要はありません。しかし、自動計算を無効にしてみてください。 – GSerg