VBA - выполнение кода очень медленно

у меня есть довольно простой код, который яиспользую для просмотра таблицы данных Excel. По сути, у меня более 150 000 строк данных, и я хочу удалить все строки, кроме тех, которые имеют "Отказ инструмента " в них, в этом случае я хочу эту строку и ту, которая находится непосредственно над и под ней (которая может содержать подробности, относящиеся к ошибке). Вот'мой код: я

Sub UnsignedFailure()
Application.ScreenUpdating = False
'Start point
Set r = Range("E1")

'Loop, total rows is a function, executes quickly
For t = 3 To TotalRows
    'Check for a failure
    k = InStr(1, r.Cells(t, 1).Value, "Instrument Failure")
    'Verify that it corresponds to a GC
    b = InStr(1, r.Cells(t, 1).Offset(0, -3).Value, "GC")
    If k  0 And b  0 Then
    'Skip two rows if it is true
        t = t + 2
    Else
    'Delete the previous row since this row is not a failure
        r.Cells(t - 1, 1).EntireRow.Delete
    'Go back a row to account for the deleted row
        t = t - 1
    End If
Next t

Application.ScreenUpdating = True
End Sub

Я проверил это, пройдя через, и это работает. Тем не менее, даже если код нарушается каждый раз, "ЕСЛИ" правда, время между перерывами кажется очень длинным (возможно, 5 минут, чтобы проверить 20 000 ячеек). Если я позволю коду работать без сбоев, мне еще предстоит его завершить (компьютер зависает). Я что-то упускаю или неэффективен в моем коде? Любая помощь будет принята с благодарностью!

Ответы на вопрос(1)

Ваш ответ на вопрос