用于在一系列日期之间进行筛选的VBA代码



我想根据用户友好的下拉框筛选我的表的日期。

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

我希望能够选择月份,然后单击按钮来筛选下面的日期列表对象表。

这是我当前的代码:

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,看看公式是否与之有关,但没有乐趣。

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

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

我不确定是否对要筛选的句点的开始和结束有一些混淆,但我添加了一些工作表函数,以便它们的顺序正确。

最新更新