我有三個文本框(分別爲日期,小時,分鐘)如何日和時合併成一個日期
我需要粘貼的最終日/月/年時:分在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