Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何使用变量(WEEKNUM)进行自动筛选_Excel_Vba - Fatal编程技术网

Excel 如何使用变量(WEEKNUM)进行自动筛选

Excel 如何使用变量(WEEKNUM)进行自动筛选,excel,vba,Excel,Vba,我正在尝试创建一个宏,它根据当前周数过滤表 我已设置变量“ThisWeek”以提供当前周数: Dim ThisWeek As Variant ThisWeek = "=WeekNum(TODAY())" 这将生成周数,并且我正在筛选的列具有周数列表(根据另一列中的日期显示周数公式的结果) 但是,我无法获得接受具有以下代码的变量的条件: Sheet2.ListObjects("Table3").Range.AutoFilter Field:=10, Criteria1:=ThisWeek 我

我正在尝试创建一个宏,它根据当前周数过滤表

我已设置变量“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)

它也可以是(不确定是否需要
“=”&
部件):

By
ThisWeek=“=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())]