自动过滤器下标超出范围

时间:2015-06-09 16:28:30

标签: vba excel-vba autofilter excel

我一直在尝试过滤O列中的5个值。这些值可能存在也可能不存在。 我一直在尝试的是以下两个例子:

ActiveSheet.ListObjects("Sheet1").Range.AutoFilter Field:=15, Criteria1:= _
            Array("CONS", "MISC", "PFG", "PRT", "TOTE"), _
            Operator:=xlFilterValues
            ActiveSheet.Range("$O$8:$O").SpecialCells(xlCellTypeVisible).EntireRow.DELETE
Range("O8").AutoFilter Field:=15

ActiveSheet.Range("$O$8:$O").AutoFilter Field:=15, Criteria1:="=CONS", _
            Operator:=xlOr, Criteria2:="=MISC", _
            Operator:=xlOr, Criteria3:="=PFG", _
            Operator:=xlOr, Criteria4:="=PRT", _
            Operator:=xlOr, Criteria5:="=TOTE"
        ActiveSheet.Range("$O$8:$O").SpecialCells(xlCellTypeVisible).EntireRow.DELETE
Range("O8").AutoFilter Field:=15

第一个代码块给出了错误:下标超出范围。 第二个给出错误:应用程序定义的错误或对象定义的错误。

有谁看到这些有什么问题?

谢谢。

1 个答案:

答案 0 :(得分:0)

尝试

    ActiveSheet.Range("$O$8:$O$10000").AutoFilter Field:=1, Criteria1:=Array("MISC" _
        , "MISC", "PFG", "PRT", "TOTE", "="), Operator:=xlFilterValues
    ActiveSheet.Range("$O$8:$O10000").SpecialCells(xlCellTypeVisible).EntireRow.Delete
    Range("O8").AutoFilter Field:=1