Przeważnie wstawia się licznik. Oczywiście w pętli for i =1 to 500 nie ma takiej potrzeby gdyż ilość obrotów można odczytać z i.
Prosty licznik to np.
Sub test1()
Dim kom As Range, licznik As Long
For Each kom In Range("A1:C500")
licznik = licznik + 1
Next kom
MsgBox "Pętla wykonała się " & licznik & " razy"
End Sub
Gdy przerwiesz działanie makra, nad słowo "licznik" najedź kursorem myszy. Powinna pokazać się bieżąca wartość zmiennej.
W excelu przy długich czasach działania kodu wyświetla się procent wykonania na pasku statusu. Poniższa pętla pokazuje działanie:
Sub test2()
Dim kom As Range, licznik As Long, oldStatusBar As Boolean
oldStatusBar = Application.DisplayStatusBar 'zapamiętaj stan paska - lewy dolny róg excela
Application.DisplayStatusBar = True ' wyświetlaj dane na pasku
For Each kom In Range("A1:C50000")
licznik = licznik + 1
Application.StatusBar = "Wykonuję " & Round((licznik / Range("A1:C50000").Count) * 100, 0) & " %"
DoEvents 'warto wstawić przy długich pętlach - mocno opóżnia wykonanie kodu
Next kom
Application.StatusBar = False
Application.DisplayStatusBar = oldStatusBar 'przywróć początkowy stan paska
End Sub |