2016-03-29 28 views
-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 

答えて

0

あなたが列Bは、一般的なようなフォーマットを持っている、またはそれはYY/MM/DDの形式を持っていないことを確認することがあります。私は何も変更せずに空白のブックにあなたのコードをテストし、それは完璧に働いた。

+0

こんにちは...私はフォーマットをGeneralに変更しましたが、それはまだ同じです。入力ボックスには、「24/3/2016」の代わりに「24/3/16」を入れました。私はフォーマットが間違っているので、エラーメッセージを表示すると思った。出力は「16/03/2024」と表示されます。 – ArleneJ

+0

OK、まずは、私が以前には答えなかったことがあります。 dd/mm/yyを入力すると、IsDate(varInputDate)行はそれを有効な日付として評価し、通常の処理に戻り、エラーを表示しません。 "Hello world"のような通常の文字列で試してください。エラーが発生します。 第2に、CDateはシステムのロケール設定に従って日付形式を認識します。それを削除してみてください。 –

+0

それは動作します!それは私のことには間違いがないことが分かります。ありがとう! – ArleneJ

関連する問題