Страницы: 1
RSS
Пустая ячейка <> 0 ошибка, Выдает ошибку Метод Delete из класса Range завершен не верно
 
Здраствуйте! Нужно с помощью макроса удалить строки в таблице.

Код
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 завершен не верно.
Что нужно исправить?
Изменено: zhaaskar - 13.11.2013 18:10:40 (Прикрепил файл)
 
Ну и правильно. Вы пытаетесь работать с таблицей, как с простым диапазоном. И Ваш макрос удаляет как раз-таки непустые строки. Чтоб работало, вставьте строку:

Код
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 на незаполненные ячейки строки - загадка...
Изменено: anvg - 14.11.2013 03:35:47
 
KukIP, anvg большое спасибо за помощь
Страницы: 1
Наверх