我收到了代表軍事時間的自定義格式(類型:000000)中的數字列表。它總是包含6位數字,必要時使用前導零。例如:如何將給定的數字轉換爲VBA中的時間格式HH:MM:SS?
- 123456變爲12時34分56秒(PM)
- 000321變爲0時03分21秒(AM)
- 142321變得十四時23分21秒(PM)
如何將列A中的整數轉換爲列B中的格式(hh:mm:ss)?我想用24小時軍用時鐘。
我收到了代表軍事時間的自定義格式(類型:000000)中的數字列表。它總是包含6位數字,必要時使用前導零。例如:如何將給定的數字轉換爲VBA中的時間格式HH:MM:SS?
如何將列A中的整數轉換爲列B中的格式(hh:mm:ss)?我想用24小時軍用時鐘。
假設其真正的整數,而不是文本:
=TIME(INT(A1/10000),INT(MOD(A1,10000)/100),MOD(A1,100))
如果是文本,然後使用結果,但是你想
=TIME(VALUE(LEFT(A1,2)),VALUE(MID(A1,3,2)),VALUE(RIGHT(A1,2)))
格式。
作爲VBA函數:整數:
Function RetTime(IntTime As Long) As Date
RetTime = TimeSerial(Int(IntTime/10000), Int((IntTime Mod 10000)/100), (IntTime Mod 100))
End Function
字符串:
Function RetTimeS(StrTime As String) As Date
RetTimeS = TimeSerial(Val(Left(StrTime, 2)), Val(Mid(StrTime, 3, 2)), Val(Right(StrTime, 2)))
End Function
如果你想VBA代碼,或一個單元格的公式,或者是什麼Custom, type 00000
是我不能告訴。上面的答案可能是從正確使用VBA函數的角度來看最好的,但我不相信有什麼辦法在軍事時間格式化一個時間對象,以「(am)」和「(pm)」結尾。至少不使用標準的Excel格式。 (也許是因爲上午和下午都在軍隊的時間冗餘。)
因此,假如您的源數據是真正的絃樂,這裏是一個選擇,如果你真的想「是」出於某種原因,「PM」:
=MID(A1,1,2) & ":" & MID(A1,3,2) & ":" & MID(A1,5,2) & IF(VALUE(MID(A1,1,2)) < 12," (am)", " (pm)")
對不起Alan,我把am和pm放在括號內以顯示它的一部分時間是......但我不希望上午或下午在我的結果..只是數字和冒號 – phan
嘗試TEXT函數,即B1
=TEXT(A1,"00\:00\:00")+0
和格式爲hh:mm:ss的
你是如何 「接納他們爲整數」? '000321'不是一個整數,所以你必須以另一種格式獲得它們。 (知道這種格式可能會使答案更容易。) –
你是對的...格式是自定義,請輸入:000000 – phan
你有這個問題標記'VBA',但你真的想在VBA代碼中做到這一點?或者你只想要一個可以在Excel單元格中使用的公式? – alan