我想在今天的日期和今天的日期减去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$1:$AL$10000").AutoFilter Field:=4, Criteria1:=">=" & CDbl(EndDate), Operator:=xlAnd, Criteria2:="<=" & CDbl(StartDate)
End Sub
答案 0 :(得分:1)
这一年有时候会有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
,自动过滤器看起来没问题。
答案 1 :(得分:0)
像:
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$1:$AL$10000")
.AutoFilter
.AutoFilter Field:=4, Criteria1:=">=" & CLng(StartDate), Operator:=xlAnd, Criteria2:="<=" & CLng(EndDate)
End With
End Sub