VBAfilter由2个月前

我试图在2个月前(即2016年12月)过滤,不起作用。 但是,如果我在Excel中select编辑当前filter,然后按确定,它会显示正确的结果。 有什么问题?

我的代码:

With Worksheets("SER Common") .Range("A1").AutoFilter .Range("A1").AutoFilter 1, "<=" & CDate(Evaluate("EOMONTH(TODAY(),-2)")) End With 

这是从@Shai Rado发表评论的另一种方法(除了转换为dbl):

 Option Explicit Public Sub TestMe() With ActiveSheet .Range("A1").AutoFilter Field:=1, Criteria1:="<=" & Format(DateAdd("m", -2, Now()), "yyyy-mm-dd") End With End Sub 

这个想法是格式化为yyyy-mm-dd ,这种格式是由Excel识别的。 加上DateAdd ,看起来更容易理解它。

一行就够了

 Worksheets("SER Common").Range("A1").AutoFilter field:=1, criteria1:="<=" & CDbl(Evaluate("EOMONTH(TODAY(),-2)"))