【问题标题】:Excel autofilter dates in month periodExcel 自动筛选月份期间的日期
【发布时间】:2017-09-22 15:56:23
【问题描述】:

以下代码按 8 月的日期过滤一系列日期

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

如何使此代码动态化,以便可以按任何月份过滤范围(例如月份(today()))?

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    试试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)
    

    【讨论】:

      【解决方案2】:

      结束了……

      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
      

      【讨论】:

        猜你喜欢
        • 2012-09-22
        • 2017-10-19
        • 2013-12-18
        • 2021-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多