2016-07-13 14 views
0

私はExcel VBAでプレイしています。そのため、セルを介してマクロスクロールを見ることができます。スリープを使ってゆっくりとセルを反復しようとすると(forループを使用して)E​​xcelは約20回の反復で応答しなくなります。その後、最後までハングし、サブが完全に実行された後に戻ります。スリープを使用するとExcelが応答しなくなるのを防ぐ方法

Option Explicit 

Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Sub test() 
    Dim i As Integer 
    For i = 1 To 50 
     Sleep 250 
     Selection.Offset(1, 0).Select 
    Next i 
End Sub 

私が起きてからこれを停止するにはどうすればよい:

ここでそれを実現するコードはありますか?

答えて

3

ループにDoEventsを追加します。

Sub test() 
    Dim i As Integer 
    For i = 1 To 50 
     Sleep 250 
     Selection.Offset(1, 0).Select 
     DoEvents '/ Add do events to return the resource to interface. 
    Next i 
End Sub 
関連する問題