vba过滤器更新功能

时间:2013-06-19 08:50:03

标签: excel vba excel-vba

由于某种原因,过滤器不适用,因为我看不到任何变化。该函数似乎输入了正确的值,但只有在“自定义过滤器”中手动单击“确定”时,它才会更新屏幕。

所以我想我错过了更新过滤器选项等等。

代码:

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

帮助

///////////////编辑 澄清。它显示正确的日期/时间值,如果我手动单击确定,则更新过滤器并显示正确的值。很奇怪 enter image description here

3 个答案:

答案 0 :(得分:1)

也许使用

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默认使用美国日期格式,因此使用数值更安全

答案 1 :(得分:0)

那怎么样?

Worksheets("Rawdata").AutoFilter.ApplyFilter

答案 2 :(得分:0)

尝试更改您的标准..

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

它应该是子过滤器,因为它没有给出返回值..