Excel VBA-InputBox和Autofilter UK日期格式问题

时间:2019-04-18 11:41:16

标签: excel vba

我正在使用VBA应用具有特定日期范围的自动过滤器,并运行以下代码。问题是,每次我应用自动过滤器时,日期都是美国格式(MM / DD / YYYY)。在我的报告中,日期采用英国格式(DD / MM / YYYY),因此我需要在报告中使用此格式。我的代码如下:

Dim sdt As Date
Dim edt As Date
sdt = CDate(Application.InputBox("Choose Start date.", Type:=2))    
edt = CDate(Application.InputBox("Choose End date.", Type:=2))
ActiveSheet.Range("$A:$C").AutoFilter Field:=3, Criteria1:=">=" & sdt, 
Operator:=xlAnd, Criteria2:="<=" & edt

我试图稍微修改我的代码,但没有成功:

ActiveSheet.Range("$A:$C").AutoFilter Field:=2, Criteria1:=">=" & CLng(Range("sdt").Value), Criteria2:="<=" & CLng(Range("edt").Value)

ActiveSheet.Range("$A:$C").AutoFilter Field:=2, Criteria1:=">=" & CDbl(sdt) Operator:=xlAnd, Criteria2:="<=" & CDbl(edt)

您能建议热点修改我的代码以应用英国日期格式(DD / MM / YYYY)的自动过滤器吗?

谢谢。

2 个答案:

答案 0 :(得分:2)

您是否尝试过将String类型应用于stdetd

Dim sdt As String
Dim edt As String
sdt = Format(CDate(Application.InputBox("Choose Start date.", Default:="31-12-2018", Type:=2)), "MM-DD-YYYY")
edt = Format(CDate(Application.InputBox("Choose End date.", Default:="31-12-2019", Type:=2)), "MM-DD-YYYY")
ActiveSheet.Range("$A:$C").AutoFilter Field:=3, Criteria1:=">=" & sdt, Operator:=xlAnd, Criteria2:="<=" & edt

我以默认日期为例,并使用格式日期,建议使用错误1004(但使用“ MM-DD-YYYY”而不是“ DD / MM / YYYY”)

答案 1 :(得分:0)

您可以尝试:

Option Explicit

Sub test()

    Dim sdt As Date
    Dim edt As Date

    sdt = Format(Application.InputBox("Choose Start date.", Type:=2), "DD/MM/YYYY")
    edt = Format(Application.InputBox("Choose End date.", Type:=2), "DD/MM/YYYY")


    ActiveSheet.Range("$A:$C").AutoFilter Field:=3, Criteria1:=">=" & sdt, Operator:=xlAnd, Criteria2:="<=" & edt

End Sub