【问题标题】:Delete table row from filtered ListObject从过滤的 ListObject 中删除表行
【发布时间】:2016-09-30 16:25:57
【问题描述】:

我正在尝试从表 (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

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    如果已经过滤了,可以试试这个:

    ActiveSheet.ListObjects([Table_Name]).DataBodyRange.EntireRow.Delete

    【讨论】:

      【解决方案2】:

      我想通了。

      你必须以这种方式调用该行

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

      即使被过滤,右侧的行也会被删除。 (.Select 也一样)

      【讨论】:

        猜你喜欢
        • 2016-07-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-20
        • 2020-08-31
        • 2013-04-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多