我正在尝试使用从2个单元格中提取的范围来调整我的日期自动过滤器。
尝试失败后,我决定使用宏构建器执行宏,以便我可以调整它以适应我的代码,最后我得到了:
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
日期格式正确,但只是让过滤器清洁。硬编码日期是有效的,我做错了什么?
我的约会结构:
Starting Date 01/08/2015
Last Date 31/07/2016
答案 0 :(得分:1)
我注意到你处于DMY日期格式。我将尽力遵守该地区标准。
使用数据类型为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
那应该过滤两个日期。但是,如果您想要开始日期和结束日期之间的所有日期,那么您需要引入运算符。
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
答案 1 :(得分:0)
您要将第二个范围分配给fechaFin
,但稍后您只使用fF
,因此请尝试分配您的范围:Set fF = Worksheets("Control").Range("B27")
因为现在fF.Value
是一个空字符串,可能会重置过滤器