-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