【发布时间】:2013-11-15 00:45:27
【问题描述】:
我在 Excel 中使用带有 VBA 的自动过滤器,它适用于常规过滤器,但不适用于格式化为日期的列。
我可以手动过滤它。如果我运行我的代码,它不会过滤任何东西,但当我检查过滤器然后只单击确定(没有对过滤条件应用更改)时,它会正确过滤。
这是我的代码:
ws.ListObjects(SheetName).Range.AutoFilter Field:=3, Criteria1 _
:=">" & CDate([datecell]), Operator:=xlAnd, Criteria2:= _
"<=" & CDate(WorksheetFunction.EoMonth([datecell], 3))
这似乎是一个常见的问题,但我没有找到解决方案。
当我运行录制的宏时,它也不起作用。
【问题讨论】:
-
如果您将日期单元格格式更改为一般格式,它会显示数字吗?
-
是的,正如我所说,一切正常。应用过滤器时出现问题。因为录制的宏也不行。
-
尝试转换为文本。比如
CDate([datecell])改成Format([datecell], "dd-MMM-yy") -
也不起作用,请参阅下面的答案和我的评论。真的很荒谬。
-
这似乎有点奇怪是的......如果你
Debug.Print或msgbox他们,[datecell]和WorksheetFunction.EoMonth([datecell], 3)是什么值?
标签: excel vba date autofilter