VBA按日期过滤

时间:2014-07-22 11:06:17

标签: excel-vba vba excel

在Excel VBA中,默认日期输入格式为" mm / dd / yyyy"。我怎样才能改变" yyyy / mm / dd"格式为" mm / dd / yyyy"所以Excel仍然将其识别为日期?

每当我将输入更改为" yyyy / mm / dd"然后将其格式化为" mm / dd / yyyy" (使用CDATE或格式化功能)Excel不会过滤数据。有没有人知道解决方法?谢谢!

sub date_filter()

lastrow = Sheets("Sheet2").Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

dataSTART = InputBox("Please enter start date (example 01/01/2014)")
dataEND = InputBox("Please enter end date (example 01/28/2014)")

Range(Cells(5, 2), Cells(lastrow, 2)).AutoFilter Field:=2, Criteria1:= _
        ">=" & dataSTART, Operator:=xlAnd, Criteria2:="<=" & dataEND

end sub

1 个答案:

答案 0 :(得分:1)

将日期转换为Double(我假设您的变量被声明为日期):

Range(Cells(5, 2), Cells(lastrow, 2)).AutoFilter Field:=2, Criteria1:= _
        ">=" & CDbl(dataSTART), Operator:=xlAnd, Criteria2:="<=" & CDbl(dataEND)