爲此創建單獨的UDF。將以下內容粘貼到模塊中。現在
Function MorphDate(DateRng As Range)
Dim DateStr As String: DateStr = DateRng.Value
Dim Yr As String, Mt As String, Dy As String
Yr = Left(DateStr, 4)
Mt = Mid(DateStr, 5, 2)
Dy = Right(DateStr, 2)
MorphDate = Format(DateSerial(Yr, Mt, Dy), "m/dd/yyyy")
End Function
Function MorphTime(TimeRng As Range)
Dim TimeStr As String: TimeStr = TimeRng.Value
Dim Hh As String, Mm As String, Ss As String
If Len(TimeStr) = 5 Then TimeStr = "0" & TimeStr
Hh = Left(TimeStr, 2)
Mm = Mid(TimeStr, 3, 2)
Ss = Right(TimeStr, 2)
MorphTime = Format(TimeSerial(Hh, Mm, Ss), "hh:mm:ss")
End Function
Function MorphDateTime(DateRng As Range, TimeRng As Range)
Application.Volatile
MorphDateTime = CDate(MorphDate(DateRng)) + CDate(MorphTime(TimeRng))
End Function
可以使用公式MorphDate
更改日期,MorphTime
更改時間,併爲MorphDateTime
兩者的結合。
截圖:
![enter image description here](https://i.stack.imgur.com/EDW6Q.png)
讓我們知道這會有所幫助。
編輯:
如果你想使用它的子程序中,下面的代碼添加到模塊:
Sub MorphingTime()
Dim DateRng As Range, Cell As Range
Set DateRng = Range("E2:E100") '--Modify as needed.
For Each Cell in DateRng
Range("K" & Cell.Row).Value = MorphDateTime(Cell, Cell.Offset(0,1))
Next Cell
End Sub
希望這有助於。
非常感謝!這很好。作爲後續工作,如果我想將其納入Sub例程,我該如何做?日期的範圍是E2直到結束,時間是F2直到結束。 – blahblahblah
@ bfs1990:檢查更新的代碼。 :) – Manhattan
完美!再次感謝你的幫助。我在學習很多! – blahblahblah