我有三个文本框(分别用于日期、小时、分钟)
我需要将最后的日/月/年小时:分钟粘贴到 Excel 中的单元格,并将其格式化为日期
sDate = Format(myDate.Value & txtHour.Value & txtMinute.Value, "MM/DD/YYYY HH:MM")
.Cells(iRow, iCol + 1).Value = sDate
帮帮我?我在挠头。
就这样出来了。
04/26/20121437
如果您的日期已经是 04/26/27 的格式,您应该可以执行类似的操作
sDate = myDate.Value & " " & txtHour.Value & ":" & txtMinute.Value
.Cells(iRow, iCol + 1).Value = sDate
或者
sDate = Format(myDate.Value, "MM/DD/YYYY") & " " & txtHour.Value & ":" & txtMinute.Value
.Cells(iRow, iCol + 1).Value = sDate
这是最干净的方法。不需要字符串连接。
Dim d As Date
d = CDate(myDate.Value) + TimeSerial(txtHour.Value, txtMinute.Value, 0)
Range("A1") = d
Range("A1").NumberFormat = "mm/dd/yyyy hh:mm"
' If you *really* need the date as a string (which is rarely the case):
Dim s As String
s = Format(d, "mm/dd/yyyy hh:mm")
唯一的弱点是CDate(myDate.Value)
。从 VBA 文档:
CDate根据系统的区域设置识别日期格式。如果提供的格式不是已识别的日期设置之一,则可能无法确定正确的日、月和年顺序。
例如,如果用户决定以dd/mm/yyyy
format 而不是mm/dd/yyyy
in键入日期myDate
,那么它将无法正常工作。请注意,Zaider 的解决方案也有类似的弱点。