-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
こんにちは...私はフォーマットをGeneralに変更しましたが、それはまだ同じです。入力ボックスには、「24/3/2016」の代わりに「24/3/16」を入れました。私はフォーマットが間違っているので、エラーメッセージを表示すると思った。出力は「16/03/2024」と表示されます。 – ArleneJ
OK、まずは、私が以前には答えなかったことがあります。 dd/mm/yyを入力すると、IsDate(varInputDate)行はそれを有効な日付として評価し、通常の処理に戻り、エラーを表示しません。 "Hello world"のような通常の文字列で試してください。エラーが発生します。 第2に、CDateはシステムのロケール設定に従って日付形式を認識します。それを削除してみてください。 –
それは動作します!それは私のことには間違いがないことが分かります。ありがとう! – ArleneJ