2016-05-02 10 views
0

誰かが疑問を明確にすることはできますか?以下のコードを参照してください。コード戻る上日付/月の変換が期待通りに合わない

Sub test() 
    Debug.Print Format(Now(), "mm") ' 1. 
    Debug.Print Format(Now(), "mmm") ' 2. 
    Debug.Print Format(Now(), "m") ' 3. 
    Debug.Print Format(Now(), "dd#mm#yy") ' 4. 
    Debug.Print Format(Now(), "dd*mm*yyyy") '5. 
    Debug.Print Format(Now(), "dd*mm*yy") ' 6. 
End Sub 

  1. 02#05#16
を次のように210

リスト5と6がそれぞれ02516123025123を返す理由を知りたい。

それは* 2016 02 * 0502 * 05 * 16

として復帰しない理由いずれかの理由を説明できますか?

+0

ここで起こっているが、回避策は、このようなものになるのか全くわから:今すぐ交換してください(フォーマット(()、「DD-を" - "、 "*") – gizlmo

+0

'*'は日付書式文字列の文字として定義されていません。 –

+0

@paul Ogilvie、ありがとう。結果を返すべきではなく、むしろエラーを投げるべきです。 –

答えて

1

の場合、Excelはシンボルを有効なフィールドセパレータとして扱います。 と場合

、Excelは、連結シンボルとして*シンボルを処理します。

+0

excel *を連結記号として扱いますか?簡単に説明できますか? –

1

あなたがlitteral *をしたい場合は、文字のエスケープする必要があります。

Debug.Print Format(Now(), "dd\*mm\*yyyy") 
関連する問題