2016-06-01 27 views
0

Ich versuche, eine ganze Zeile aus einer Tabelle (ListObject) zu löschen, aber ich habe Probleme, die Zeile. folgende Code funktioniert Präfekt, wenn die Tabelle nicht gefiltert wird:Löschen Tabellenzeile von gefilterten 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 

Filterung wird durch den Benutzer in Excel gemacht, nicht VBA. Gibt es eine direkte Möglichkeit, eine Zeile zu löschen oder muss ich sie ungefiltert? Und wenn das der Fall ist, wie kann ich es filtere wieder die gleiche Art und Weise (soll der Benutzer nichts merken, ich Application.ScreenUpdating anwenden würde, wenn nötig.

Danke im Voraus

Antwort

0

ich es herausgefunden.

Sie haben die Zeile

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

Auch auf diese Weise zu nennen, wenn gefiltert wird die richtige Zeile gelöscht werden. (das Gleiche gilt für .Select)

Verwandte Themen