我有三个文本框(分别为日期,小时,分钟)如何日和时合并成一个日期
我需要粘贴的最终日/月/年时:分在Excel单元格 它格式化为一个日期
sDate = Format(myDate.Value & txtHour.Value & txtMinute.Value, "MM/DD/YYYY HH:MM")
.Cells(iRow, iCol + 1).Value = sDate
帮助我在这里?我在挠头。
它是这样出来的。
04/26/20121437
我有三个文本框(分别为日期,小时,分钟)如何日和时合并成一个日期
我需要粘贴的最终日/月/年时:分在Excel单元格 它格式化为一个日期
sDate = Format(myDate.Value & txtHour.Value & txtMinute.Value, "MM/DD/YYYY HH:MM")
.Cells(iRow, iCol + 1).Value = sDate
帮助我在这里?我在挠头。
它是这样出来的。
04/26/20121437
如果您的日期已经在27年4月26日的格式,你应该能够做到像
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根据系统的区域设置识别日期格式。如果提供的日期,月份和年份的正确顺序不是一种识别的日期设置,则可能无法确定。
如果用户决定,例如,在myDate
键入dd/mm/yyyy
格式,而不是mm/dd/yyyy
日期,那么它将无法正常工作。请注意,Zaider的解决方案也有类似的弱点。
感谢您的提示。 TimeSerial对我来说是新的。谢谢。 – 2012-05-04 18:27:18
唯一的问题,如果OP需要一个两位数字的小时和分钟 – Steve 2012-04-26 22:00:19
+ 1 :)您可能需要更改'sDate = myDate.Value&“”&txtHour.Value&“:”&txtMinute.Value' to'sDate = myDate.Value&“”&format(txtHour.Value。“00”)&“:”&format(txtMinute.Value,“00”)'就像史蒂夫建议的那样。 – 2012-04-26 22:02:28
谢谢悉达思。 – 2012-04-26 22:03:31