テキストボックスには、String
が含まれています。日付形式のセルにはDate
が含まれています(Excelにはの日付と解釈されたい場合)。コンバージョンが不足しています。 ToDate
がString
を取り、Date
を返す関数になり
Dim dateValue As Date
dateValue = ToDate(Me.txtDate.Value)
.Cells(lRow, 4).Value = dateValue
.Cells(lRow, 4).NumberFormat = "yyyy/MM/dd"
。これについては多くの方法があり、提供された文字列が有効な日付ではない状況を処理する必要があります。
はここ方法です:それは十分に良いことだ、と一つだけの場所で必要な場合は
Private Function ToDate(ByVal value As String) As Date
ToDate = DateValue(value) 'raises error 13 "type mismatch" if invalid
End Function
、その後、あなたはそれをインライン化できます。
.Cells(lRow, 4).Value = DateValue(Me.txtDate.Value)
.Cells(lRow, 4).NumberFormat = "yyyy/MM/dd"
'.Cells(lRow、4)。 Value = Format(Me.txtDate.Value、 "yyyy/mm/dd") 'Format/Custom/YYYY/MM/DDでは、セルで直接フォーマットを設定することもできます。 –
@KostasK。数値形式では、Excelが日付として認識しない日付形式の文字列はありません。 –
@マットのマグ。そうです。それをすべて誤って読んでください。 –