【发布时间】:2021-12-16 20:35:47
【问题描述】:
我想在 VBA 中按日期过滤大型 Excel 表格。当我使用“Between”过滤器手动完成时,它可以工作(参见Screenshot 1 和Screenshot 2)。
如果我同时运行“录制宏”功能,它也可以工作,我得到以下代码:
ActiveSheet.ListObjects("Table5").Range.AutoFilter Field:=4, Criteria1:= _
">=15/09/2021", Operator:=xlAnd, Criteria2:="<=17/10/2021"
但是,当我尝试运行生成的宏时,它会过滤掉所有记录:
找到 29725 条记录中的 0 条
这是我尝试过的:
- 检查堆栈溢出问题#40820757 和#23132653。
- 检查该字段确实是日期格式:是的。
- 进入 Windows 中的“更改日期和时间格式”菜单并检查我系统中的本地短日期格式:“DD/MM/YYYY”。
- 尝试了以下代码,结果相同:
Dim Date1 As Date
Dim Date2 As Date
Date1 = CDate("15/09/2021")
Date2 = CDate("17/10/2021")
ActiveSheet.ListObjects("Table5").Range.AutoFilter Field:=4, Criteria1:= _
">=" & Date1, Operator:=xlAnd, Criteria2:="<=" & Date2
您知道如何解决此问题吗?谢谢。
【问题讨论】: