如何将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设置,则可能无法确定。

例如,如果用户决定在myDatemm/dd/yyyy dd/mm/yyyy格式inputdate而不是年mm/dd/yyyy日,则无法正常工作。 请注意,Zaider的解决scheme也有类似的弱点。