Excel 在两个日期范围之间进行筛选

Excel 在两个日期范围之间进行筛选,excel,vba,filtering,Excel,Vba,Filtering,我想过滤2个日期范围之间的1批数据 日期范围1:从昨天的日期返回到前28天。 日期范围2:从昨天的日期追溯到一年前的28天 要筛选到一个日期范围,请使用以下代码: Sub DateFilter() Dim StartDateTY As Date Dim EndDateTY As Date StartDateTY = Date - 29 EndDateTY = Date - 1 Sheets("Main").Range("$A$4:$O$5000").AutoFilter Field:=2,

我想过滤2个日期范围之间的1批数据

日期范围1:从昨天的日期返回到前28天。 日期范围2:从昨天的日期追溯到一年前的28天

要筛选到一个日期范围,请使用以下代码:

Sub DateFilter()

Dim StartDateTY As Date
Dim EndDateTY As Date
StartDateTY = Date - 29
EndDateTY = Date - 1

Sheets("Main").Range("$A$4:$O$5000").AutoFilter Field:=2, _
 Criteria1:=">=" & CDbl(StartDateTY), Operator:=xlAnd, _
 Criteria2:="<=" & CDbl(EndDateTY)

End Sub
我想我可以使用数组来使用2个不同的日期范围,但无法使其工作

Sub DateFilter2Ranges()

Dim StartDateTY As Date
Dim EndDateTY As Date
StartDateTY = Date - 29
EndDateTY = Date - 1

Dim StartDateLY As Date
Dim EndDateLY As Date
StartDateLY = Date - 29 - 365
EndDateLY = Date - 1 - 365

Sheets("Main").Range("$A$4:$O$5000").AutoFilter Field:=2, _
  Criteria1:=Array(0, ">=" & CDbl(StartDateTY), 0, ">=" & CDbl(StartDateLY)), Operator:=xlAnd, _
  Criteria2:=Array(1, "<=" & CDbl(EndDateTY), 1, "<=" & CDbl(EndDateLY))

End Sub

我还认为如果可能的话,我可以混合使用“And”“And”“Or”运算符。

为了在autofilter中处理日期,您需要知道一件事-autofilter只识别美国日期格式:月/日/年

Sub FFF()

    Dim dt1 As Date, dt2 As Date
    Dim sDate1$, sDate2

    '// Get dates
    dt1 = Now - 29: dt2 = Now - 1

    '// Format dates
    sDate1 = Format(dt1, "MM\/yy\/yyyy")
    sDate2 = Format(dt2, "MM\/yy\/yyyy")

    With Sheets("Main").Range("A1").CurrentRegion
        .AutoFilter
        .AutoFilter Field:=2, Criteria1:=">=" & sDate1, Operator:=xlAnd, Criteria2:="<=" & sDate2

    End With

End Sub