VBA日期范围筛选不生效 全部数据被过滤隐藏问题求助
VBA按日期范围筛选全部数据被过滤问题解决方案
故障原因
- VBA直接拼接Date类型变量到筛选条件字符串时,会自动按照系统默认短日期格式转换为文本,大概率和Excel筛选器识别的日期格式不匹配,导致筛选逻辑不生效
- 不同区域的系统日期顺序(日/月/年、月/日/年)存在差异,也会导致代码里赋值的日期和筛选目标的日期匹配错误
修复方案
把日期变量转换为Excel底层存储的日期序列号,或者无歧义的通用日期格式再拼接进筛选条件,最稳妥的是转序列号的方案,完全避开格式冲突问题。
修复后代码如下:
Dim StDate As Date Dim EndDate As Date StDate = "1/20/21" EndDate = "2/2/21" With ActiveSheet .Range("Q1:Q2500").AutoFilter 1, ">=" & CDbl(StDate), xlAnd, "<=" & CDbl(EndDate) End With
额外排查项
如果修改代码后仍然筛选不到结果,先确认Q列的内容是标准日期格式,而非文本类型的伪日期,如果是文本格式需要先将列转换为日期格式再执行筛选。
内容的提问来源于stack exchange,提问作者Matt
相关产品推荐
相关产品推荐

