如何解决在日期列上未定义过滤条件1和条件2
根据Microsoft:https://docs.microsoft.com/en-us/office/vba/api/excel.filter.criteria2可以设置变量= .Criteria2。这会在Excel 2010-2019 / 365中引发运行时1004错误。
注意:如果过滤的列是日期,则Criteria1和Criteria2未定义:应用程序定义的错误或对象定义的错误。 注意:筛选一列文字或数字时,Excel将正确记住Criteria1。
为简化审阅者的操作,我只记录了一个宏,该宏过滤了日期列并添加了注释以显示结果。
Sub Macro2()
'
' Macro2 Macro
'
Dim testfilter As Variant
Dim testfilter2 As Variant
' I recorded filtering Column A and removing a few dates
ActiveSheet.Range("$A$1:$M$51").AutoFilter Field:=1,Criteria1:=Array("=") _,Operator:=xlFilterValues,Criteria2:=Array(0,"6/7/2021","10/27/2020",_
"11/16/2019",1,"3/30/2018","5/17/2018","6/30/2018","7/28/2018",_
"9/3/2018","10/31/2018","12/29/2018")
Set WS = ActiveSheet
With WS.AutoFilter
With .Filters(1)
If .On And .Operator Then
testfilter = .Criteria1 ' Criteria1 = "="
testfilter2 = .Criteria2 ' Runtime Error 1004 - Application-Defined or object-defined error
End If
End With
End With
End Sub
解决方法
如果使用Excel的日期过滤器,则会定义Criteria1和Criteria2并将其分配给变量,以便记住并重新应用它们。
如果日期为2018年至2020年,并且在下拉过滤器菜单中取消选中2018年旁边的框,则Excel对Criteria2使用数组,但Criteria2仍未定义,如果试图将其分配给变量,则会导致运行时错误1004
解决方法:要求使用数据过滤器并使用代码来检测和处理未定义的Criteria1和Criteria2。
我要感谢ComputerVersteher的所有帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。