首页 > 解决方案 > 日期过滤器的用户输入

问题描述

我有一些 VBA 代码将日期过滤器应用于数据集以进行进一步的工作。目前,日期过滤器是根据预定义的条件应用的:

Worksheets("PSE Data").Activate

    StartDate = DateSerial(Year(Date), Month(Date), Day(Date))
    EndDate = DateSerial(Year(Date), Month(Date) + 3, Day(Date))


    ActiveSheet.ListObjects("PSE_Data").Range.AutoFilter Field:=17, _
                                            Criteria1:=">=" & StartDate, _
                                            Operator:=xlAnd, _
                                            Criteria2:="<=" & EndDate
    ActiveSheet.ListObjects("PSE_Data").Range.AutoFilter Field:=6, _
                                            Criteria1:="M"

    With ActiveSheet.ListObjects("PSE_Data").Sort
    .SortFields.Add Key:= _
    Range("PSE_Data" & "[Sugg Start Date]"), _
    SortOn:=xlSortOnValues, _
    Order:=xlAscending, _
    DataOption:=xlSortNormal
    .Apply
    End With

我想要做的是用弹出框中的用户输入值替换 StartDate 和 EndDate。你能帮忙吗?

标签: excelvbamsgbox

解决方案


Here is a typical way:

Sub dural()
    Dim StartDate As Date, EndDate As Date

    With Application
        StartDate = CDate(.InputBox(Prompt:="enter startdate mm/dd/yyyy", Type:=2))
        EndDate = CDate(.InputBox(Prompt:="enter enddate mm/dd/yyyy", Type:=2))
        MsgBox StartDate & vbCrLf & EndDate
    End With
End Sub

推荐阅读