Excel自动筛选日期以月为单位

时间:2013-09-05 22:30:24

标签: excel vba excel-vba

以下代码根据8月的日期过滤日期范围

ActiveSheet.Range("$A$29:$CG$3582").AutoFilter field:=18, Criteria1:= _
    xlFilterAllDatesInPeriodAugust, Operator:=xlFilterDynamic

如何使此代码动态化,以便我可以按月过滤范围(例如月(今天()))?

2 个答案:

答案 0 :(得分:2)

尝试Criteria2,但这有点神秘。通过Array(1, datestring),其中1将过滤该日期的整个月份,而日期字符串必须采用m / d / y格式。
(0 =全年,2 =天,还有一些,正如somewhere here所述)。

Dim s As String
s = Format(Now, "MM""/""dd""/""yyyy")

ActiveSheet.Range("$A$29:$CG$3582").AutoFilter _
    Field:=18, Operator:=xlFilterValues, _
    Criteria2:=Array(1, s)

答案 1 :(得分:0)

结束了......

Function GetDatesInPeriodConst(month As Long)
    GetDatesInPeriodConst = 20 + month
    '(January is number 21)
End Function

ActiveSheet.Range("$A$29:$CG$3582").AutoFilter field:=18, Criteria1:= _
GetDatesInPeriodConst(month(Date)), Operator:=xlFilterDynamic