在AutoFilter Between语句中使用日期变量

时间:2014-01-07 22:37:52

标签: excel excel-vba filter vba

我正在尝试在用户输入的两个日期之间过滤电子表格。我编写的代码(在Excel中的自动宏工具的主要帮助下)是:

Sub Between()
Between Macro
Filters Create-Date between two parameters.

Dim MonthNeeded1 As Date, MonthNeeded2 As Date

Let MonthNeeded1 = InputBox("First Day Of Month for Target Period", "Date", "mm/dd/yyyy")

Let MonthNeeded2 = InputBox("Last Day Of Month for Target Period", "Date", "mm/dd/yyyy")

ActiveSheet.Range("$A$1:$S$8704").AutoFilter Field:=4, Criteria1:= _">= MonthNeeded1", Operator:=xlAnd, Criteria2:="<= MonthNeeded2"*

End Sub

我的问题似乎与Criteria1和Criteria2语句有关。字符串MonthNeededX将被放入过滤器命令,而不是用户输入的变量日期。我搜索了这个网站和其他人,似乎无法找到问题。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

这是@ simoco的答案。一旦Simoco输入答案,我将删除。只是想确保它被列为未来的研究人员。

改变这个:

ActiveSheet.Range("$A$1:$S$8704").AutoFilter _
    Field:=4, _
    Criteria1:=">= MonthNeeded1", _
    Operator:=xlAnd, _
    Criteria2:="<= MonthNeeded2"

对此:

ActiveSheet.Range("$A$1:$S$8704").AutoFilter _
    Field:=4, _
    Criteria1:=">=" & MonthNeeded1, _
    Operator:=xlAnd, _
    Criteria2:="<=" & MonthNeeded2