我认为这是一个非常简单的问题,设置一个自动过滤器来过滤零,我无法开始工作。 我在Excel 2007中构建了一个支持宏的工作簿,需要与2003 excel兼容。在其中,我运行以下代码以应用并在当前选定的工作表上设置自动过滤。
Range("A5:E5").AutoFilter field:=3, Criteria1:=0
这在2007年可以正常工作。在2003机器上进行测试时,Criteria1字段中没有任何内容被过滤 - 所有行都保持未过滤/可见 - 但没有给出错误。有什么理由吗?
答案 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