【问题标题】:"Last Week Mon to Sun Auto filter"“上周周一至周日自动过滤器”
【发布时间】:2021-06-26 20:11:57
【问题描述】:

我有一张数据表,其中有 2 个包含数据的特定列,并且需要根据包含日期的列上的过滤器(上周从星期一到星期日)进行过滤。此活动需要每周一进行,以便为我的经理创建报告。到目前为止,我一直在手动完成,但试图在 vba 的帮助下找到自动完成的方法。

Sub Macro1()
Worksheets("OPE Data").Select
With Selection
.Range("B2").Select
Range("B2").AutoFilter Field:=1, Criteria1:=">=" & Range("A1").Value, Operator:=xlAnd, Criteria2:="<=" & Range("B1").Value
End With
End Sub

【问题讨论】:

    标签: excel vba autofilter weekday


    【解决方案1】:

    这将使您获得前一周的星期日和星期一。

    Sub Macro1()
    Dim sundaydate As Date
    Dim mondaydate As Date
    
    sundaydate = Date - (Weekday(Date, vbMonday))
    mondaydate = sundaydate - 6
    With Worksheets("OPE Data")
        .Range("B2").AutoFilter Field:=1, Criteria1:=">=" & mondaydate, Operator:=xlAnd, Criteria2:="<=" & sundaydate
    End With
    End Sub
    

    我删除了您的选择,不需要它们。

    如果您希望引用单元格公式而不是在 VBA 中获取日期,那么这些将起作用:

    TODAY()-(WEEKDAY(TODAY(),2)) 'Sunday
    (TODAY()-(WEEKDAY(TODAY(),2))) - 6 'Monday
    

    【讨论】:

    • Sub LstWkFltr() lastmonday = DateAdd("ww", -1, Date - (Weekday(Date, vbMonday) - 1)) Range("A1").AutoFilter 1, ">=" & Format(lastmonday, "mm/dd/yyyy"), xlAnd, "
    猜你喜欢
    • 2020-08-22
    • 2021-12-31
    • 2017-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多