Excel 如何使用变量(WEEKNUM)进行自动筛选
我正在尝试创建一个宏,它根据当前周数过滤表 我已设置变量“ThisWeek”以提供当前周数:Excel 如何使用变量(WEEKNUM)进行自动筛选,excel,vba,Excel,Vba,我正在尝试创建一个宏,它根据当前周数过滤表 我已设置变量“ThisWeek”以提供当前周数: Dim ThisWeek As Variant ThisWeek = "=WeekNum(TODAY())" 这将生成周数,并且我正在筛选的列具有周数列表(根据另一列中的日期显示周数公式的结果) 但是,我无法获得接受具有以下代码的变量的条件: Sheet2.ListObjects("Table3").Range.AutoFilter Field:=10, Criteria1:=ThisWeek 我
Dim ThisWeek As Variant
ThisWeek = "=WeekNum(TODAY())"
这将生成周数,并且我正在筛选的列具有周数列表(根据另一列中的日期显示周数公式的结果)
但是,我无法获得接受具有以下代码的变量的条件:
Sheet2.ListObjects("Table3").Range.AutoFilter Field:=10, Criteria1:=ThisWeek
我在网上搜索了几个小时,尝试了很多变量,包括:
Sheet2.ListObjects("Table3").Range.AutoFilter Field:=10, Criteria1:=">=" & ThisWeek, Operator:=xlAnd, Criteria2:="<=" & ThisWeek
Sheet2.ListObjects(“Table3”).Range.AutoFilter字段:=10,Criteria1:=“>=”&本周,运算符:=xlAnd,Criteria2:=”我可以为自动筛选提供的最佳方法是解析今天()(VBA中的日期)到开始和结束日期,然后使用AutoFilter的Criteria1和Criteria2参数和运算符:=xlAnd
。在VBA中,使用工作日(,[])
函数和一些小数学,查找上个星期日(或任何其他道琼斯指数)和下个星期六是一件小事
Weekday和Date函数用于始终解析动态日期,如5月的第二个星期日或11月的第三个星期一。在VBA中,您必须使用Date()
而不是今天(),要获取周数,请使用DatePart()
您必须检查您所在国家的周数是如何计算的,并调整此函数的参数
在欧洲,例如在VBA中使用DatePart(“ww”,Date,vbMonday,vbFirstFourDays)
。
工作表中相应的周数函数是WEEKNUM(…,21)
它也可以是(不确定是否需要“=”&
部件):
ByThisWeek=“=WeekNum(TODAY())”
它只是一个始终包含相同字符的字符串。请参考我的答案,了解如何在VBA中获取一周的数字。
Dim ThisWeek As Integer
ThisWeek = DatePart("ww", Date, vbMonday, vbFirstFourDays)
Sheet2.ListObjects("Table3").Range.AutoFilter Field:=10, Criteria1:=ThisWeek
ThisWeek = "=" & [WeekNum(TODAY())]