Этот простой макрос будет работать для вас:
Нет необходимости в петле
Для таблицы используйте это:
Sub deleteRow()
With ActiveSheet.ListObjects("Table1") ' Change table name
.Range.AutoFilter Field:=1, Criteria1:=">7"
.DataBodyRange.Delete
End With
End Sub
Это также покажет предупреждение, выберите Да, когда оно появится
Для объекта простого диапазона Используйте это:
Sub deleteRow()
With ActiveSheet.UsedRange
.AutoFilter Field:=1, Criteria1:=">7"
.Offset(1, 0).SpecialCells(xlCellTypeVisible).Delete xlShiftUp
End With
End Sub
Полезная связь с различными командами операций таблицы. Здесь