excel - 自动筛选,列格式为日期

标签 excel vba date autofilter

我在 Excel 中使用带有 VBA 的自动筛选器,该筛选器适用于常规筛选器,但不适用于格式化为日期的列。

我可以手动过滤它。如果我运行我的代码,它不会过滤任何内容,但是当我检查过滤器然后仅单击“确定”(没有更改应用于过滤条件)时,它会正确过滤。

这是我的代码:

ws.ListObjects(SheetName).Range.AutoFilter Field:=3, Criteria1 _
        :=">" & CDate([datecell]), Operator:=xlAnd, Criteria2:= _
        "<=" & CDate(WorksheetFunction.EoMonth([datecell], 3))

这似乎是一个常见问题,但我还没有找到解决方案。

当我运行录制的宏时,它也不起作用。

最佳答案

使用 Excel VBA 自动筛选器,日期可能会很棘手。有些人发现循环遍历要过滤的数组更容易。

有时我发现可以使用日期的数值,特别是在处理“日期之间”时

Criteria1:= ">" & CDbl([datecell])
Criteria2:= "<=" & CDbl(WorksheetFunction.EoMonth([datecell], 3))

请注意,上面的内容必须是“真实日期”,而不是看起来像日期的字符串。即使是单个“字符串日期”也会把事情搞砸。

关于excel - 自动筛选,列格式为日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19767043/

相关文章:

html - 按登录按钮 Excel Vba

vba - 通过 VBA 填写网络表单

jquery - 覆盖 jquery 日期

Java 8 – 从 LocalDateTime 和 TimeZone 创建即时

swift - 在 Swift 中创建特定时间的本地日期

VBA 错误 424,使用 ".Value"属性将值写入单元格

php - 如何在下拉列表值中添加逗号?

excel - 如何以编程方式将 QueryTable 包装在 ListObject 中?

正则表达式 - 从字符串中提取数字(带 2 位小数)

vba - 合并单元格数量可变的 2 个单元格