2016-06-01 8 views
0

Я пытаюсь удалить целую строку из таблицы (ListObject), но у меня есть проблемы с адресом строки. Следующий код работает префекта, когда таблица не фильтруется:Удалить строку таблицы из фильтра ListObject

Sub loeschen() 

If errorhandling Then On Error GoTo fehlerbehandlung 

    ActiveCell.ListObject.ListRows(ActiveCell.Row - ActiveCell.ListObject.HeaderRowRange.Row).Delete 

Exit Sub 
fehlerbehandlung: 
fehlermeldung 

End Sub 

Фильтрация осуществляется пользователем в Excel, а не VBA. Есть ли прямой способ удалить строку или мне нужно ее отфильтровать? И если это так, то как отфильтровать его снова таким же образом (пользователь не должен ничего заметить, я буду применять Application.ScreenUpdating при необходимости.

Спасибо заранее

ответ

0

я понял это.

Вы должны назвать Row этот путь

ActiveCell.ListObject.Range.EntireRow(ActiveCell.Row - ActiveCell.ListObject.HeaderRowRange.Row + 1).Delete 

Даже если фильтруется, правая строка будет удалена. (То же самое для .Select)

Смежные вопросы