1

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

所以我想我错过了更新过滤器选项或其他东西。

代码:

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

谢谢帮助

////////////// 编辑澄清。它显示正确的日期/时间值,如果我手动单击“确定”,它会更新过滤器并显示正确的值。很奇怪 在此处输入图像描述

4

3 回答 3

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

于 2013-06-19T10:21:27.823 回答
0

那这个呢?

Worksheets("Rawdata").AutoFilter.ApplyFilter
于 2013-06-19T08:59:35.463 回答
0

尝试改变你的标准..

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

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

于 2013-06-19T09:24:55.743 回答