使用单元格值作为date范围自动筛选器

我试图调整我的date自动filter从2个单元格提取范围。

在尝试了一些失败之后,我决定用macrosbuild设者来做这个macros,所以我可以调整它以适应我的代码,最后我得到:

Dim fI As Range Dim fF As Range Set fI = Worksheets("Sheet1").Range("B26") Set fF = Worksheets("Control").Range("B27") ActiveSheet.ListObjects("TABLE_REPORTS_GENERAL_INFO").Range _ .AutoFilter Field:=24, Criteria1:=fI.Value, Operator:=xlAnd, _ Criteria2:=fF.Value 

date的格式是正确的,但它只是让filter清洁。 硬编码date正在工作,我做错了什么?

我的date结构:

 Starting Date 01/08/2015 Last Date 31/07/2016 

我注意到你是DMYdate格式。 我会尽量保持这个区域标准。

使用数据types为Criteria2的数组。

 With ActiveSheet With .ListObjects("TABLE_REPORTS_GENERAL_INFO") .Range.AutoFilter Field:=13, Operator:=xlFilterValues, _ Criteria2:=Array(2, Format(fi.Value, "d/m/yyyy"), 2, Format(ff.Value, "d/m/yyyy")) End With End With 

这应该过滤两个date。 但是,如果您想要开始date和结束date之间的所有date,则需要引入操作员。

 With ActiveSheet With .ListObjects("TABLE_REPORTS_GENERAL_INFO") .Range.AutoFilter Field:=13, _ Criteria1:=Format(fi.Value, "\>\=d/m/yyyy"), Operator:=xlAnd, _ Criteria2:=Format(ff.Value, "\<\=d/m/yyyy") End With End With 

您正在将第二个范围分配给fechaFin ,但后来您只使用fF ,因此请尝试分配您的范围,如下所示: Set fF = Worksheets("Control").Range("B27")

因为现在fF.Value是一个空string,可能会重置filter