VBA 在今天和今天之间自动筛选 - 1 年

VBA Autofilter between todays date and todays date - 1 year

我试图在今天的日期和今天的日期减去 1 年之间进行过滤。当我 运行 下面的 VBA 没有任何反应,过滤器也没有设置。任何人都可以指出正确的方向并搜索论坛的高低。

Sub Date_Filter()

    Keyboard Shortcut: Ctrl+Shift+Q

    Dim StartDate As Date
    Dim EndDate As Date
    StartDate = Date
    EndDate = Date - 365
    Sheets("Advisor Data").Select
     ActiveSheet.Range("$A:$AL000").AutoFilter Field:=4, Criteria1:=">=" & CDbl(EndDate), Operator:=xlAnd, Criteria2:="<=" & CDbl(StartDate)

End Sub

喜欢:

Option Explicit

Public Sub Date_Filter()
    Dim StartDate As Date
    Dim EndDate As Date
    EndDate = Date
    StartDate = DateAdd("yyyy", -1, Date)

    With ThisWorkbook.Worksheets("Advisor Data").Range("$A:$AL000")
        .AutoFilter
        .AutoFilter Field:=4, Criteria1:=">=" & CLng(StartDate), Operator:=xlAnd, Criteria2:="<=" & CLng(EndDate)
    End With
End Sub

一年有时有 366 天,因此为了使您的代码更健壮,您可以使用 DateSerial():

Public Sub TestMe()

    Dim startDate As Date
    Dim endDate As Date
    startDate = Date
    endDate = DateSerial(Year(Date) - 1, Month(Date), Day(Date))

    Debug.Print endDate

End Sub

一旦你有了正确的 endDate,自动过滤器看起来就没问题了。