根据输入框日期进行过滤不起作用

根据输入框日期进行过滤不起作用

我想输入开始日期和结束日期,并让 VBA 在选定日期之间过滤 Excel 表中的数据条目。但是,此代码返回零个过滤条目。如果我手动进入 Excel 中的过滤器,我发现它配置正确(日期放入过滤条件框中)。如果我单击“确定”按钮,过滤就正常了。知道我犯了什么错误吗?

Ps 假设输入框的值是格式正确的日期

Option Explicit

Sub ExpCsmLg()

' ExpCsmLg Makro
' this makro filters all data entries between two selected dates

Dim sdt As Date
Dim edt As Date

'sdt = InputBox("Choose Start date.")

'edt = InputBox("Choose End date.")


    ActiveSheet.Range("$A$5:$Q$7992").AutoFilter Field:=1, Criteria1:=">=" & sdt, Operator:=xlAnd, Criteria2:="<=" & edt


End Sub

答案1

这似乎对我有用:

Option Explicit

Sub ExpCsmLg()

' ExpCsmLg Makro
' this makro filters all data entries between two selected dates

Dim sdt As Date
Dim edt As Date

sdt = CDate(Application.InputBox("Choose Start date.", Type:=2))

edt = CDate(Application.InputBox("Choose End date.", Type:=2))


    ActiveSheet.Range("$A$5:$Q$7992").AutoFilter Field:=1, Criteria1:=">=" & sdt, Operator:=xlAnd, Criteria2:="<=" & edt


End Sub

前:

在此处输入图片描述

之后:

在此处输入图片描述

笔记:

列中的项目A是真实日期而不是文本值。

相关内容