Отключите обновление экрана и вычисления перед циклом, и это значительно увеличит скорость.
Sub testing()
'Disable screen updating and calculation
Dim uRange As Range
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Total_rows_worksheet = Worksheets("Sample").Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To Total_rows_worksheet
If Worksheets("Sample").Cells(i, 1) = "OK" Then
If uRange Is Nothing Then
Set uRange = Worksheets("Sample").Cells(i, 1)
Else
Set uRange = Union(uRange, Worksheets("Sample").Cells(i, 1))
End If
End If
Next i
uRange.Value = "THIS USED TO SAY OK"
'Enable screen updating and calculation when done
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Редактировать 1: В зависимости от задачи, другой способ ускорить процесс - это изменить все сразу, добавивдиапазоны до объединения.
Примечание. Обновление экрана должно быть первым, которое должно быть отключено, и последним, которое должно быть включено при переходе на скорость в Excel-VBA.Есть и другие вещи, которые можно отключить, такие как События, которые также помогают, если у вас есть специфичные для события триггеры.