Board logo

標題: [發問]時間格式的轉換(已解決) [打印本頁]

作者: jiuhtsair    時間: 2011-4-26 20:03     標題: [發問]時間格式的轉換(已解決)

本帖最後由 jiuhtsair 於 2011-8-23 17:53 編輯

我從券商的DDE中傳資料到EXCEL,但券商的時間格式是 1秒=1/86400 大約是0.00001157407。
它是由凌晨00:00:01=0.00001157407起算,上午9:03:01=(9*3600+3*60+1)/86400=0.3777095
想請教如何在VBA中把0.3777095這數字轉成上午9:03:01?謝謝!
作者: GBKEE    時間: 2011-4-26 20:20

回復 1# jiuhtsair
  1. Sub Ex()
  2.     Dim d As Date, t As Double
  3.     '1小時=1 / 24
  4.     '1分 = 1 / 24 / 60
  5.     '1秒=1 / 24 / 60 / 60
  6.     t = (1 / 24) * 9 + (1 / 24 / 60) * 3 + (1 / 24 / 60 / 60) * 1
  7.     d = t
  8.     MsgBox t & Chr(10) & d
  9. End Sub
複製代碼

作者: Hsieh    時間: 2011-4-26 20:50

k = CDate(0.3777095)
MsgBox k
k = CDbl(k)
MsgBox k
作者: jiuhtsair    時間: 2011-4-26 21:57

謝謝兩位大大解答,測試之後確實在mesage Box中得到時間顯示。
想請問大大,要如何才能將上午9:03:01放在儲存格中?(例如:A1內容為0.3777095,B1內容為9:03:01)
謝謝。
作者: Hsieh    時間: 2011-4-26 22:05

本帖最後由 Hsieh 於 2011-4-26 22:34 編輯

A1格式設為通用格式
B1設為時間
  1. Sub nn()
  2. [A1].NumberFormatLocal = "G/通用格式"
  3. [B1].NumberFormatLocal = "hh:mm:ss"
  4. [A1:B1] = 0.3777095
  5. End Sub
複製代碼

作者: jiuhtsair    時間: 2011-4-26 22:34

ㄏㄏ...謝謝!了解了。原來在EXCEL儲存格格式中直接選取-->時間-->類型,就可以將0.3777095轉成9:03:01。謝謝!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)