-1
我想顯示一個輸入消息響應,該響應是使用CDate(dd/mm/yyyy)格式化的單元格。爲什麼如果輸入是以dd/mm/yy的形式完成的,代碼不會顯示錯誤信息?該程序接受它,但輸出顯示爲yy/mm/dd。VBA中的日期格式不起作用
下面是我創建的代碼:
Sub inputSettlementDate()
Dim varInputDate As Variant
Dim lngERow As Long
varInputDate = InputBox("Please enter the Settlement Date using this format dd/mm/yyyy.", "Settlement Date")
If IsDate(varInputDate) Then
varInputDate = Format(CDate(varInputDate), "dd/mm/yyyy")
Else
MsgBox "Please enter a valid date format dd/mm/yyyy"
End If
If IsDate(varInputDate) Then
lngERow = Range("B" & Rows.Count).End(xlUp).Row + 1
Range("B" & lngERow).Value = varInputDate
End If
End Sub
嗨...我已經將格式更改爲常規,但仍然相同。在輸入框中,我輸入「24/3/16」而不是「24/3/2016」。我認爲它會顯示錯誤信息,因爲格式不正確。輸出顯示爲「16/03/2024」.. – ArleneJ
好的,首先,我以前沒有回答過。如果輸入dd/mm/yy,IsDate(varInputDate)行仍然會將其作爲有效日期進行計算,然後進入常規處理,而不會顯示錯誤。嘗試使用常規字符串,例如「Hello world」,您將得到錯誤信息。其次,CDate根據系統的區域設置識別日期格式。嘗試刪除。 –
它的工作原理!事實證明,我的(注意:第一個)代碼沒有任何問題。謝謝! – ArleneJ