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)

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

提前谢谢。

您是否尝试过将字符串类型应用于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/YYYYY"(

你可以试试:

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

相关内容

  • 没有找到相关文章

最新更新