如何使用日期自动过滤?

时间:2012-10-16 07:41:47

标签: excel vba

这里有什么问题

Dim dt1 As Date
dt1 = DateSerial(2012, 9, 1)
r0.Columns(6).AutoFilter
r0.Columns(6).AutoFilter field:=1, Criteria1:=dt1, VisibleDropDown:=False

r0是一个范围 - 9列和1300行
r0.Columns(6)具有日期格式
第6列中的许多单元格的值为1.9.2012(在公式栏中可见)
结果是没有一个单元格具有此值。 r0中的所有行都已折叠。

2 个答案:

答案 0 :(得分:2)

试试这个

r0.Columns(1).AutoFilter Field:=1, Operator:= _
    xlFilterValues, Criteria2:=Array(0, Format(dt1, "mm/dd/yyyy"))

另外,请确保第6列中的数据为DateSerial,而不是外观的字符串,如日期。

答案 1 :(得分:1)

使用以下代码进行测试:

Public Sub test()
  Dim dt1 As Date
  dt1 = DateSerial(2012, 9, 1)
  Dim r0 As Range
  Set r0 = Tabelle1.Range("A1:C23")
  'r0.Columns(3).AutoFilter
  r0.Columns(3).AutoFilter field:=1, Criteria1:=dt1, VisibleDropDown:=False
End Sub

关于这些数据:

HeaderA | HeaderB| HeaderC
stuff   | stuff  | 01.09.2012
stuff   | stuff  | 01.09.2012
stuff   | stuff  | 02.09.2012
stuff   | stuff  | 04.04.2012
stuff   | stuff  | 01.02.2012
stuff   | stuff  | 07.09.2012
stuff   | stuff  | 01.09.2012
stuff   | stuff  | 08.10.2012
stuff   | stuff  | 01.09.2012
stuff   | stuff  | 01.09.2012

工作得很好。