如何将日和小时合并为一个日期

时间:2012-04-26 21:40:18

标签: excel vba date

我有三个文本框(分别为日期,小时,分钟)

我需要将最终的日/月/年小时:分钟粘贴到Excel中的单元格 将其格式化为日期

sDate = Format(myDate.Value & txtHour.Value & txtMinute.Value, "MM/DD/YYYY HH:MM")
.Cells(iRow, iCol + 1).Value = sDate

帮帮我吧?我在挠头。

它就是这样出来的。

04/26/20121437

2 个答案:

答案 0 :(得分:1)

如果您的日期已经是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

答案 1 :(得分:0)

这是最干净的方法。不需要字符串连接。

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中以mm/dd/yyyy格式而不是myDate键入日期,那么它将无法正常工作。请注意,Zaider的解决方案也有类似的弱点。