我正在使用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( 的自动过滤器?
提前谢谢。
您是否尝试过将字符串类型应用于std
和etd
?
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