【问题标题】:Autofilter Excel 2003 not filtering for zero自动过滤 Excel 2003 不过滤为零
【发布时间】:2015-05-06 05:45:01
【问题描述】:

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

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

这在 2007 年按预期工作。在 2003 年的机器上进行测试时,Criteria1 字段中没有过滤任何内容 - 所有行保持未过滤/可见 - 但没有给出错误。有什么原因吗?

【问题讨论】:

  • 在xl'03中写代码,看看有什么区别。
  • 当然……不敢相信我没想到要在 03 年录制宏。对于它的价值,它必须是Criteria1:="0"

标签: excel excel-2003 vba


【解决方案1】:

上面提到的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

【讨论】:

    猜你喜欢
    • 2011-06-08
    • 1970-01-01
    • 1970-01-01
    • 2010-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    相关资源
    最近更新 更多