过滤只显示在单元格中input的date之后的数据

我有一个数据集,我只想显示指定date后的数据。 该date将由最终用户定义。 我能够做到这一点的数字,但只要我试图这样做的datemacros运行,结果是没有数据显示。

我的数据表被称为“数据”date列在第8列(字段8)和我想要定义的数据inputdate是在单元格H1我在英国(也许这有一个影响???)我不想开始转换我的基础原始数据。

我想我拼命地试图让细胞H1被看作是一个date

代码如下:

Sub Macro_show_data_after_inputted_date Sheets("Data").Select Range("C15").Select Selection.AutoFilter ActiveSheet.Range("$A$4:$AJ$2875").AutoFilter Field:=8, Criteria1:=">" & Range("H1"), _ Operator:=xlAnd End Sub 

这是一个数字格式问题。 Range.AutoFilter方法期望它的条件与它正在过滤的值具有相同的格式。 可以使用Range .Text属性检索单元格的显示值(也称为格式化文本 )。

 Sub Macro_show_data_after_inputted_date with Sheets("Data") if .autofiltermode then .autofiltermode = false with .Range("C15") .AutoFilter Field:=8, Criteria1:=">" & .Range("H1").TEXT end with end with End Sub 

如果您logging相同的操作并故意输错date格式,您将在结果logging的代码中看到,在将其用作string标准之前它是正确的。