Autofilter Excel 2003不会过滤零

时间:2015-03-05 00:40:21

标签: excel-vba excel-2003 vba excel

我认为这是一个非常简单的问题,设置一个自动过滤器来过滤零,我无法开始工作。 我在Excel 2007中构建了一个支持宏的工作簿,需要与2003 excel兼容。在其中,我运行以下代码以应用并在当前选定的工作表上设置自动过滤。

Range("A5:E5").AutoFilter field:=3, Criteria1:=0

这在2007年可以正常工作。在2003机器上进行测试时,Criteria1字段中没有任何内容被过滤 - 所有行都保持未过滤/可见 - 但没有给出错误。有什么理由吗?

1 个答案:

答案 0 :(得分:0)

上面提到的Criteria1:="0"并没有最终起作用,即使这是'03机器录制的内容。我最后通过检查应用程序版本号并运行不同的代码来解决问题(如下),但如果数据集很大(我知道这个特定的数据集不会),则不会这样做。

If Application.Version < 12 Then
            Range("ItemsTop").Select
            Range("A" & Range("A" & Rows.Count).End(xlUp).Row).Select
            ActiveCell.Offset(0, 2).Select
            Do While ActiveCell.Row > 7
                If Selection.Value = 0 Then
                    ActiveCell.EntireRow.Delete
                End If
                ActiveCell.Offset(-1, 0).Select
            Loop
            'Range("A5:E5").AutoFilter field:=3, Criteria1:="0"
        Else
            Range("A5:E5").AutoFilter field:=3, Criteria1:=0
            Range("A5").Select
            ActiveCell.Offset(1, 0).Select
            Do Until ActiveCell.EntireRow.Hidden = False
                ActiveCell.Offset(1, 0).Select
            Loop
            Selection.EntireRow.Select
            Range(Selection, Selection.End(xlDown)).Select
            Selection.Delete shift:=xlUp
            Selection.AutoFilter
        End If