【问题标题】:Using date variables in an AutoFilter Between statement在 AutoFilter Between 语句中使用日期变量
【发布时间】:2014-01-25 19:59:37
【问题描述】:

我正在尝试过滤用户输入的两个日期之间的电子表格。我编写的代码(在 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 被放入过滤器命令,而不是用户输入的可变日期。我搜索了这个网站和其他网站,似乎找不到问题所在。有人可以帮忙吗?

【问题讨论】:

  • 尝试改用ActiveSheet.Range("$A$1:$S$8704").AutoFilter Field:=4, Criteria1:="&gt;=" &amp; MonthNeeded1, Operator:=xlAnd, Criteria2:="&lt;=" &amp; MonthNeeded2
  • 完美!非常感谢您的帮助!
  • @simoco 我将您的回复作为答案放在下面。如果您输入作为答案,我将删除。只是想让未来的研究人员清楚。

标签: excel filter vba


【解决方案1】:

这是@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

【讨论】:

    猜你喜欢
    • 2013-04-09
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 2012-11-24
    • 2016-03-16
    • 2012-09-23
    • 2019-01-06
    • 1970-01-01
    相关资源
    最近更新 更多