excel - 按VBA中两个日期之间的时间段过滤Excel表格
问题描述
我想在 VBA 中按日期过滤大型 Excel 表格。当我使用“Between”过滤器手动完成时,它可以工作(请参阅屏幕截图 1和屏幕截图 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
您知道如何解决此问题吗?谢谢。
解决方案
尝试更改日期格式,如下面的代码所示。
Sub Macro1()
Date1 = Format("15/09/2021", "mm/dd/yyyy")
Date2 = Format("17/10/2021", "mm/dd/yyyy")
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=4, Criteria1:= _
">=" & Date1, Operator:=xlAnd, Criteria2:="<=" & Date2
End Sub
推荐阅读
- html - 填充速记与 4 行代码的 CSS 问题
- amazon-web-services - 具有多个路径部分的 API Gateway REST API 集成请求路径重写
- javascript - 如何从javascript返回数组中的对象数组?
- python - Pybandit 允许 B311:在测试中使用伪随机生成器
- javascript - 在 Vue 3 项目中添加静态文件(HTML、CSS、JS)
- python - 正则表达式替换忽略停用词
- python - 在每个其他元素列表理解之后在 Python 列表中插入元素
- node.js - 如何在离线centos7中运行'npm install -g'
- java - 从 SQL 转换为 JPA 查询
- flutter - 无法解析 image_picker 包导入 | 扑