Вы должны удалять строки сразу, а не в каждой строке. Вы можете использовать UNION метод , чтобы выполнить sh это. Это будет успешно делать то, что вы описываете. Если у вас есть проблемы, это связано с вашими данными.
Что еще более важно, это сделает вашу процедуру на один НАМНОГО быстрее.
Sub deleteDupes()
Dim i As Long
With Sheets("Sheet1")
Dim killRng As Range
Set killRng = Rows(Rows.Count)
For i = .Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
If .Cells(i, 44).Value = .Cells(i - 1, 44).Value Then _
Set killRng = Union(Rows(i), killRng)
Next i
End With
killRng.EntireRow.Delete
End Sub