Vendor Цитата: Если ткнуть на дебаг, то выделяется строка
"Row2 = Row1 + ThisWorkbook.ActiveSheet.UsedRange.Rows.Count - 1"
ваша правда. Совсем выпустил из виду, что у вас много строчек...
конечно, после драки нечего кулаками махать, но, так сказать, в целях оправдания [more=исправленный и дополненный макрос]
Код: Sub DeleteEmptyLines()
Dim i, Row1, Row2 As Long
Application.ScreenUpdating = False
Application.EnableEvents = False
Row1 = ThisWorkbook.ActiveSheet.UsedRange.Row
Row2 = Row1 + ThisWorkbook.ActiveSheet.UsedRange.Rows.Count - 1
i = Row1
While i <= Row2
If (IsEmpty(Cells(i, 1&).Value) Or _
(TypeName(Cells(i, 1&).Value) = "String" _
And (Trim(Cells(i, 1&).Value) = ""))) And _
(IsEmpty(Cells(i, 2&).Value) Or _
(TypeName(Cells(i, 2&).Value) = "String" _
And (Trim(Cells(i, 2&).Value) = ""))) And _
(IsEmpty(Cells(i, 3&).Value) Or _
(TypeName(Cells(i, 3&).Value) = "String" _
And (Trim(Cells(i, 3&).Value) = ""))) _
Then
Cells(i, 1).EntireRow.Delete
Row2 = Row2 - 1
Else
i = i + 1
End If
Wend
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub