【问题标题】:VBA Code to filter between a range of datesVBA代码在一系列日期之间进行过滤
【发布时间】:2015-11-16 11:30:19
【问题描述】:

我希望根据用户友好的下拉框过滤我的表格日期。

就目前而言,下拉框仅由月份名称填充。 然后有一个隐藏公式将这些名称转换为单元格 U4 和 U5 中的 2 个日期。 日期是每月的第一天和每月的最后一天。

我希望能够选择月份,然后单击按钮以过滤下面的列表对象表格。

这是我当前的代码:

Sub Filters()

    Range("U4", "U5").Copy
    Range("V4").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False`

    ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=2, Criteria1:=">=" & Range("V4").Value, Operator:=xlAnd, Criteria2:="<=" & Range("V5").Value, Operator:=xlAnd

End Sub

但过滤器不会“执行” 我已将单元格复制到 V4 和 V5 以查看公式是否与它有关,但没有任何乐趣。

【问题讨论】:

    标签: vba excel date


    【解决方案1】:

    如果您从公式中获取日期,请获取原始基础值并直接传输它们。

    With ActiveSheet
        .Range("V4:V5") = .Range("U4:U5").Value2
    
        .ListObjects("Table1").Range.AutoFilter  '<~~turn off any previous filtering operation
        .ListObjects("Table1").Range.AutoFilter Field:=2, _
                Criteria1:=">=" & Application.Min(.Range("V4").Value2, .Range("V5").Value), _
                Operator:=xlAnd, _
                Criteria2:="<=" & Application.Max(.Range("V4").Value2, .Range("V5").Value)
    End With
    

    我不确定过滤周期的开始和结束是否存在混淆,但我添加了一些工作表函数以便正确排序。

    【讨论】:

      猜你喜欢
      • 2014-06-01
      • 1970-01-01
      • 2012-06-26
      • 1970-01-01
      • 2011-06-10
      • 2017-04-10
      • 1970-01-01
      • 2016-07-17
      • 1970-01-01
      相关资源
      最近更新 更多