一個文本框包含一個String
。日期格式的單元格包含Date
(如果您希望Excel將其理解爲日期)。您錯過了轉換。
Dim dateValue As Date
dateValue = ToDate(Me.txtDate.Value)
.Cells(lRow, 4).Value = dateValue
.Cells(lRow, 4).NumberFormat = "yyyy/MM/dd"
凡ToDate
將是一個函數,它接受一個String
並返回一個Date
。有很多方法可以解決這個問題,並且您需要處理提供的字符串不是有效日期的情況。
這裏的一個方式:
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)。值=格式(Me.txtDate.Value,「yyyy/mm/dd」)'也可以直接在單元格中設置格式,但格式/自定義/ YYYY/MM/DD。 –
@KostasK。數字格式不會日期格式的字符串,Excel不會將其識別爲日期。 –
@馬特杯你說得對。完全誤讀它。 –