vbafilter更新函数

出于某种原因,filter不适用,因为我看不到任何更改。 该function似乎input正确的值,但只有当我手动点击确定在“自定义filter”它更新屏幕。

所以我想我错过了一个更新filter选项或东西。

码:

Function filter(weekstart As Date, weekend As Date) With Worksheets("Rawdata") .Range("A:N").AutoFilter _ field:=1, _ Criteria1:=">=" & weekstart & "", Operator:=xlAnd, Criteria2:="<=" & weekend & "", _ VisibleDropDown:=True End With End Function 

Thx的帮助

///////////////编辑澄清。 它显示正确的date/时间值,如果我手动单击确定,然后更新filter,并显示正确的值。 很奇怪 在这里输入图像说明

也许使用

 Function filter(weekstart As Date, weekend As Date) With Worksheets("Rawdata") .Range("A:N").AutoFilter _ field:=1, _ Criteria1:=">=" & CLng(weekstart) & "", Operator:=xlAnd, Criteria2:="<=" & CLng(weekend) & "", _ VisibleDropDown:=True End With End Function 

VBA默认使用美国的date格式,所以使用数字值更安全

那这个呢?

 Worksheets("Rawdata").AutoFilter.ApplyFilter 

尝试改变你的标准..

 Criteria1:=">= #" & format(weekstart,"dd.mm.yyyy") & "#", Operator:=xlAnd, Criteria2:="<= #" & format(weekend,"dd.mm.yyyy") & "#" 

它应该是Sub Filter,因为它不会返回值。