【问题标题】:How would I filter a column for all dates within 1 week from today in VBA?如何在 VBA 中过滤从今天起 1 周内的所有日期的列?
【发布时间】:2022-07-06 03:00:07
【问题描述】:

我正在尝试使用下面显示的 VBA 中相同的自动过滤方法过滤从今天起未来 1 周/7 天内列中的所有日期。我这次感兴趣的专栏是 Field:=53

    ActiveSheet.ListObjects("Table22").Range.AutoFilter Field:=129, Criteria1:= _
    "UPCOMING"

我想知道这是否可以做到,如果可以,怎么做?

【问题讨论】:

  • 明天就是明天吗?
  • @SolarMike 是的,到今天我的意思不是停滞不前。今天是代码运行的任何一天。对不起,我应该澄清一下

标签: excel vba filter excel-formula


【解决方案1】:

从今天到下周今天:

.AutoFilter Field:=53, Criteria1:=">=" & Date, Operator:=xlAnd, Criteria2:="<=" & Date + 7

您还可以使用特殊值将过滤器快速设置为“本周”或“下周”。查看this list所有可能的特殊值。

'This Week
.AutoFilter Field:=53, Criteria1:=xlFilterThisWeek, Operator:=xlFilterDynamic

'Next Week
.AutoFilter Field:=53, Criteria1:=xlFilterNextWeek, Operator:=xlFilterDynamic

【讨论】:

    【解决方案2】:

    您可以像这样设置过滤器:

     ActiveSheet.ListObjects("Table22").Range.AutoFilter 129, ">=" & CLng(Date), xlAnd, "<=" & CLng(DateAdd("d", 7, Date))
    

    要过滤日期,必须将它们转换为长值,否则过滤器将不起作用。

    【讨论】:

    • 我没有遇到过过滤日期而不转换日期的问题。什么样的情况会导致您出现这个问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-20
    • 1970-01-01
    • 2020-04-08
    • 1970-01-01
    相关资源
    最近更新 更多