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
,自动过滤器看起来就没问题了。
我试图在今天的日期和今天的日期减去 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
,自动过滤器看起来就没问题了。