擦除过滤表中的范围 - 运行时错误

时间:2015-10-08 13:43:45

标签: excel excel-vba vba

我需要删除表格中的一些内容。我首先过滤我想要保留的内容,然后删除剩下的内容。

我有一个“运行时错误'1004':” 不允许此操作。该操作正在尝试在工作表的表格中移动单元格。

我真的不明白,我在另一个表中使用相同的方法,它工作正常。

我的桌子从A3开始。

我桌旁边还有表格控制按钮。这可能是我的问题吗?

ActiveSheet.ListObjects("Table_Query_from_Visual_FoxPro_Tables").Range. _
    AutoFilter Field:=4, Criteria1:="X", Operator:=xlOr, Criteria2:="Y"
ActiveSheet.UsedRange.Offset(1, 0).Resize(ActiveSheet.UsedRange.Rows.Count - 1).Rows.Delete

1 个答案:

答案 0 :(得分:0)

您滥用Worksheet.UsedRange property。由于您的表以A3开头,但.UsedRange从A1开始,您将删除标题行。

您需要查看.DataBodyRange propertyListObject object

With ActiveSheet
    With .ListObjects("Table_Query_from_Visual_FoxPro_Tables")
        .Range.AutoFilter Field:=4, Criteria1:="X", Operator:=xlOr, Criteria2:="Y"
        With .DataBodyRange
            .Cells.EntireRow.Delete
        End With
        .Range.AutoFilter Field:=4
    End With
End With