本文介绍了在今天和今天之间的VBA自动筛选-1年的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在今天的日期和今天的日期减去1年之间进行过滤.当我运行下面的VBA时,什么也没有发生,并且没有设置过滤器.谁能指出我的正确方向,并且搜寻过很多高低的论坛.

I am trying to filter between todays date and todays date minus 1 year. When I run the below VBA nothing happens and the filter doesn't set. Can anyone point me in the correct direction and have searched forums high and low.

Sub Date_Filter()

    Keyboard Shortcut: Ctrl+Shift+Q

    Dim StartDate As Date
    Dim EndDate As Date
    StartDate = Date
    EndDate = Date - 365
    Sheets("Advisor Data").Select
     ActiveSheet.Range("$A$1:$AL$10000").AutoFilter Field:=4, Criteria1:=">=" & CDbl(EndDate), Operator:=xlAnd, Criteria2:="<=" & CDbl(StartDate)

End Sub

推荐答案

一年有时有366天,因此,为了使代码更可靠,可以使用 DateSerial():

The year has sometimes 366 days, thus to make your code a bit robust you may use DateSerial():

Public Sub TestMe()

    Dim startDate As Date
    Dim endDate As Date
    startDate = Date
    endDate = DateSerial(Year(Date) - 1, Month(Date), Day(Date))

    Debug.Print endDate

End Sub

一旦您具有正确的 endDate ,自动过滤器就可以了.

Once you have the correct endDate, the autofilter looks ok.

这篇关于在今天和今天之间的VBA自动筛选-1年的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-22 02:58