创建一个宏来过滤两个日期 vba

Create a macro to filter between two dates vba

我正在尝试编写一个将在两个日期之间进行过滤的宏,但我不知道该怎么做 it.All 我的日期在列中 D.I 我尝试使用此代码进行过滤但是过滤器无法正常工作。

Sheets("All").ListObjects("Table_Name").Range.AutoFilter Field:=4, _
    Criteria1:=DTPicker1, Operator:=xlAnd, Criteria2:=txtEDate
    Sheets("All").Select

您输入代码的方式将筛选出两个确切的日期。如果您正在寻找一个时间范围,那么您需要通过包含比较符号(例如 < 和 >:

来扩展您的代码
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

否则,您的代码只会添加到现有过滤器中。