如何将Day和Hour组合成一个date
我有三个文本框(分别为date,小时,分钟)
我需要将最后的日/月/年小时:分钟粘贴到Excel格式的单元格中,并将其格式化为date
sDate = Format(myDate.Value & txtHour.Value & txtMinute.Value, "MM/DD/YYYY HH:MM") .Cells(iRow, iCol + 1).Value = sDate
帮我在这里? 我正在挠头。
这是这样出来的
04/26/20121437
如果你的date已经是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
这是最干净的方式。 不需要string连接。
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根据系统的区域设置识别date格式。 如果提供的date,月份和年份的正确顺序不是一个确认的date设置,则可能无法确定。
例如,如果用户决定在myDate
日mm/dd/yyyy
dd/mm/yyyy
格式inputdate而不是年mm/dd/yyyy
日,则无法正常工作。 请注意,Zaider的解决scheme也有类似的弱点。