VBA代码来过滤date范围之间

我正在寻找基于用户友好的下拉框过滤我的表的date。

就目前而言,下拉框只填写月份名称。 然后有一个隐藏的公式,将这些名称转换为单元格U4和U5中的两个date。 date是月份的第一天和月份的最后一天。

我希望能够select月份,然后单击button来筛选date下面的列表对象表。

这是我现在的代码:

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 

但filter不“执行”我已经复制单元格到V4和V5,看看公式是与它有什么关系,但没有喜悦。

如果您从公式中获取date,则采用原始基础值并直接转移它们。

 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 

我不确定是否可能会在过滤的开始和结束时出现一些混淆,但我添加了一些工作表函数,以便正确sorting。