我正在尝试编写一个可以在两个日期之间进行过滤的宏,但我不知道该怎么做。我的所有日期都在D列中。我试图使用此代码进行过滤,但是过滤器无法正常工作。
Sheets("All").ListObjects("Table_Name").Range.AutoFilter Field:=4, _
Criteria1:=DTPicker1, Operator:=xlAnd, Criteria2:=txtEDate
Sheets("All").Select
答案 0 :(得分:0)
您输入代码的方式将过滤两个确切的日期。如果您正在寻找一个时间范围,那么您需要通过包含比较符号来扩展您的代码,例如<和>:
Sheets("All").ListObjects("Table_Name").Range.AutoFilter Field:=4, _
Criteria1:=">=" & DateSerial(Year(DTPicker1), Month(DTPicker1), Day(DTPicker1)), Operator:=xlAnd, Criteria2:="<="DateSerial(Year(txtEDate), Month(txtEDate), Day(txtEDate))
此外,我总是喜欢在VBA中使用DateSerial,以确保识别日期并输入日期。如果您处理不同的国际日期格式,它还可以消除可能出现的问题。
您可能还想删除所有先前的过滤器:
Sheets("All").ShowAllData
否则,您的代码只会添加到现有过滤器中。