我正在尝试从Table(ListObject)中删除整行,但是我在解决Row方面遇到了问题。 以下代码在未过滤表时仍然有效:
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 :(得分:0)
我明白了。
你必须以这种方式调用行
ActiveCell.ListObject.Range.EntireRow(ActiveCell.Row - ActiveCell.ListObject.HeaderRowRange.Row + 1).Delete
即使已过滤,也会删除右侧行。 (.Select
)
答案 1 :(得分:0)
如果已经过滤,则可以尝试以下操作:
ActiveSheet.ListObjects([Table_Name]).DataBodyRange.EntireRow.Delete