一个文本框包含一个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不会将其识别为日期。 –
@马特杯你说得对。完全误读它。 –