Excel 根据单元格数据对日期范围进行高级或自动筛选

Excel 根据单元格数据对日期范围进行高级或自动筛选,excel,vba,date,input,filter,Excel,Vba,Date,Input,Filter,我有一张表(Sheet1),其中第一列是日期字段。我想创建一个宏,要求输入开始日期和结束日期,将这些日期放在两个单元格中,比如i38、i39,然后使用这些单元格中的数据进行过滤。这可能吗 我不熟悉宏和VB,不知道如何在基于日期的过滤器中使用单元格数据 感谢您的帮助。首先: 运行此: Sub FilterDateRange() Dim d1 As String, d2 As String, r As Range Set r = Range("I1:I26") d1 =

我有一张表(Sheet1),其中第一列是日期字段。我想创建一个宏,要求输入开始日期和结束日期,将这些日期放在两个单元格中,比如i38、i39,然后使用这些单元格中的数据进行过滤。这可能吗

我不熟悉宏和VB,不知道如何在基于日期的过滤器中使用单元格数据

感谢您的帮助。

首先:

运行此:

Sub FilterDateRange()
    Dim d1 As String, d2 As String, r As Range
    Set r = Range("I1:I26")

    d1 = ">" & Application.InputBox(Prompt:="enter start date", Type:=2)
    d2 = "<" & Application.InputBox(Prompt:="enter start date", Type:=2)

    r.AutoFilter
    r.AutoFilter Field:=1, Criteria1:=d1, Operator:=xlAnd, Criteria2:=d2

    Range("I38") = Mid(d1, 2)
    Range("I39") = Mid(d2, 2)
End Sub
Sub-filterDaterRange()
尺寸d1为字符串,d2为字符串,r为范围
设置r=范围(“I1:I26”)
d1=“>”&应用程序输入框(提示:=“输入开始日期”,类型:=2)
d2=“=”&应用程序输入框(提示:=“输入开始日期”,类型:=2)

d2=“太棒了,我马上就去试试。如果这是一个巨大的文件,有没有办法从上到下只选择列i而不使用范围?而不是将输入安装到一个单元中,是否可以只在代码中使用它们而不记录它们?我忘了需要这个过滤器的实际文件有多大。并且大小每个月都会变化。@12FRETER要过滤整个列,请使用此行集r=Range(“I:I”)而不是发布的行…………然后将最后两行代码放在End子完美上方!非常感谢。在测试中,我意识到结束日期不包括在过滤器中。我们能在变量D2过滤之前将其增加1吗?我不知道这样做的语法。再次感谢。@12fretter无需更改代码……在我的示例中,要进入并包括2017年9月1日,只需在输入框中输入2017年9月2日
d1 = ">=" & Application.InputBox(Prompt:="enter start date", Type:=2)
d2 = "<=" & Application.InputBox(Prompt:="enter start date", Type:=2)