2017-05-08 191 views
0

我想不出如何將12:00:00 AM轉換爲數字/小數。我想時間格式轉換爲「短時間」或「h.mm」,但它沒有工作,但仍返回0Excel VBA - 如何將12:00:00 AM時間轉換爲十進制/數字?

Dim dbConvertTime as Double 
Dim dtTime as Date 

dtTime = Format("12:00:00 AM","Short Time") 
dbConvertTime = (dtTime * 24) 

*輸出 dbConvertTime = 0

我想轉換時間(12:00:00)至24:00:00,因爲此數據(12:00:00)在乘以24時返回0.輸出應爲= 576.00

+3

你可能想通過這種閱讀,以更好地理解日期/次在Excel中:http://stackoverflow.com/a/37101358/1153513這可能也是一個很好的閱讀:http://stackoverflow.com/a/38001028/1153513之後,你會明白,任何** **沒有小數位的數字(所以,小數點後的零)可以被解釋爲日期/時間,並且將始終等於'12:00:00 AM'。 – Ralph

回答

0

將返回時間戳的小時數

Hour(Now()) 

這將返回一個24小時格式的時間戳。如果你想有一個12小時制,你可以做到以下幾點:

dtTime = IIf(Hour(tme) > 12 Or Hour(tme) = 0, Abs(Hour(tme) - 12), Hour(tme)) 

我用abs這裏返回12時,時間是上午12點

+0

用我最好的感覺 - 你不覺得,世界上最常用的電子表格解決方案會比一個像轉換時間這樣簡單的任務的定製公式更好嗎? - https://msdn.microsoft.com/en-us/library/office/gg251755.aspx – Vityata

+0

@Vityata有不止一種方法去皮膚貓。同樣,OP所指定的NumberFormat在時間爲「12:00:00 AM」時不會返回12。如上所述。當一切都是vba和工作表函數中可用的標準功能時,這也不是一個自定義公式 – Tom

相關問題