Здраствуйте! Нужно с помощью макроса удалить строки в таблице.
Код
Sub Макрос1()
Dim r As Integer
LastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count 'определяем размеры таблицы
Application.ScreenUpdating = False
For r = LastRow To 1 Step -1 'проходим от последней строки до первой
If Application.CountA(Rows(r)) <> 0 Then Rows(r).Delete 'если в строке пусто - удаляем ее
Next r
End Sub
После выполнения макроса, выдает ошибку: Метод Delete из класса Range завершен не верно. Что нужно исправить?
Ну и правильно. Вы пытаетесь работать с таблицей, как с простым диапазоном. И Ваш макрос удаляет как раз-таки непустые строки. Чтоб работало, вставьте строку:
Код
Dim r As Integer
ActiveSheet.ListObjects(1).Unlist
В общем то для удаления строк в ListObject не обязательно его удалять
Код
Public Sub DelEmptyRow()
Dim pLObject As ListObject, i As Long
Set pLObject = ActiveSheet.ListObjects(1)
For i = pLObject.ListRows.Count To 1 Step -1
If Application.WorksheetFunction.CountA(pLObject.ListRows(i).Range) = 0 Then
pLObject.ListRows(i).Delete
End If
Next
End Sub
Только вот для чего ТС проверяет <>0 на незаполненные ячейки строки - загадка...