Vba 在一列上自动筛选三个日期

Vba 在一列上自动筛选三个日期,vba,Vba,我是新的宏,我需要以下代码的帮助。我想在一列中筛选用户提供的三个日期。下面的宏给我一个空白结果 Sub newdate() Dim today As Date, yesterday As Date, tomorrow As Date yesterday = CDate(Application.InputBox(Prompt:="Please enter yesterday date:", Type:=2)) today = CDate(Application.InputBox(

我是新的宏,我需要以下代码的帮助。我想在一列中筛选用户提供的三个日期。下面的宏给我一个空白结果

Sub newdate()
Dim today As Date, yesterday As Date, tomorrow As Date

    yesterday = CDate(Application.InputBox(Prompt:="Please enter yesterday date:", Type:=2))
    today = CDate(Application.InputBox(Prompt:="Please enter today date:", Type:=2))
    tomorrow = CDate(Application.InputBox(Prompt:="Please enter tomorrow date:", Type:=2))

    ActiveSheet.Range("A:E").AutoFilter Field:=5, Criteria1:="=" & yesterday
    ActiveSheet.Range("A:E").AutoFilter Field:=5, Criteria1:="=" & today
    ActiveSheet.Range("A:E").AutoFilter Field:=5, Criteria1:="=" & tomorrow 

若要按三个日期进行筛选,请改用数组作为条件。试试这个

yesterday = CDate(Application.InputBox(Prompt:="Please enter yesterday date:", Type:=2))
today = CDate(Application.InputBox(Prompt:="Please enter today date:", Type:=2))
tomorrow = CDate(Application.InputBox(Prompt:="Please enter tomorrow date:", Type:=2))
arrDates = Array(yesterday, today, tomorrow)

ActiveSheet.Range("A:E").AutoFilter Field:=5, _
  Criteria1:=arrDates, _
  Operator:=xlFilterValues
顺便问一下,你需要向用户询问日期吗?您可以通过date自动设置今天的日期,并使用DateAdd查找昨天或明天

yesterday = DateAdd("d", -1, Date)
today = Date
tomorrow = DateAdd("d", 1, Date)
arrDates = Array(yesterday, today, tomorrow)

ActiveSheet.Range("A:E").AutoFilter Field:=5, _
    Criteria1:=arrDates, _ 
    Operator:=xlFilterValues

更改了标题大小写,一次改为一次。格式化代码。