2016-12-14 63 views
0

爲4休假封面曾表示他的問題與開關24小時,以PM/AM - EXCEL VBA Timevalue format (hh:mm am/pm)如何從PM切換/ AM到24小時在Excel中使用VBA

我有完全相反的問題:

我使用下面的代碼(T = 1,39)

t = wks.Range("G1").Value/1440 
wks.Range("I1").Value = Format(t, "hh:mm:ss") 

這使我零時01分23秒在式文本字段,但在細胞它被格式化爲上午12點01分23秒。問題是:在單元格中,我希望它被格式化爲00:01:23。如果可能的話 - 我甚至希望只有幾分鐘和幾秒鐘。 - 但是「nn:ss」給我1:23:00 AM,「mm:ss」給我12:23:00 PM。

我也嘗試了TimeSerial的用功能,但在電池的輸出基本上與上文提到的在相反然而debug.print相同的,這使我所需的結果 - 不是在細胞雖然:

Public Function FromTimeToDecimal(ByVal t As Double) As Date 
FromTimeToDecimal = TimeSerial(0, Fix(t), (t - Fix(t)) * 60) 
End Function 

所以基本上我出的線索,此刻

(國家設置爲德國 - 在重要的情況下)

+1

您需要設置***電池的'NumberFormat' *** - 否則Excel將只會重新它,你寫它了。 '「mm:ss; @」'或'「h:mm:ss; @」'應該可以工作。 – Comintern

+0

不幸的是,這確實有理想的效果 - 儘管 – Marc

回答

0

我可以複製你的問題,但也很容易通過設置NumberFormat爲解決這個問題共產國際建議你似乎不確定的東西。

要做到這一點編程,請執行下列操作:

wks.Range("I1").NumberFormat = "General" 
wks.Range("I1").Value = Format(t, "nn:ss") 
+0

感謝您的答案 - 它應該像它應該! – Marc

+0

@馬克高興地幫忙! – Wolfie

相關問題