我在 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/