用户表单中的文本框具有下面的 vba,以便将日期粘贴到我的工作表的 D 列中。我需要按如下方式粘贴日期格式:“YYYY/MM/DD”完全按照这个顺序。
但是目前下面的代码粘贴了日期“DD/MM/YYYY”。我错过了什么吗?谢谢
.Cells(lRow, 4).Value = Me.txtDate.Value
.Cells(lRow, 4).NumberFormat = "YYYY/MM/DD"
一个文本框包含一个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
接受 aString
并返回 a的函数在哪里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"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句