2015-06-21 35 views
0

我想我手邊有一個相當簡單的問題,但我一直對此感到困惑。我對迄今爲止的日期非常熟悉,並將它們轉換爲「Long」整數。但是,除了「交貨日期」之外,我必須爲此特定實例添加時間值以反映「交貨時間」的情況。我知道excel-vba分別爲日期和時間提供函數。我想知道我如何反映日期和日期,例如10/06/2015,7pm或1900hrs(原諒我爲非美國人的格式)爲一個我可以使用的整數。類似於,例如:如何使用時間值格式化日期?

dim y as date 
y = "10/06/2015" 
dbldate = Clng(y) 

但是具有附加組件時間爲7pm。對不起,我的帖子相當冗長!

回答

1

對於工作表和VBA兩者時間僅僅是一個浮點值的小數部分。所以:

Sub dural() 
    Dim db As Double, dt As Date 
    db = 12345.67 
    dt = CDate(db) 
    MsgBox dt 
End Sub 

產地:

enter image description here

編輯#1:

日期/時間轉換爲字符串爲浮點值:

Sub Backwards() 
    Dim st As String, db As Double 
    st = "12/25/2014 7:00PM" 
    db = DateValue(st) + TimeValue(st) 
    MsgBox db 
End Sub 

enter image description here

+0

太感謝你了,我不知道能TIMEVALUE以這種方式 – lackdaz

+0

@lackdaz感謝您的反饋utitlized! –

1
Dim dt as Date 
Dim dbl as Double 

'Add 19 hours to the date for 7pm 
dt = DateAdd("h", 19, y) 

'Convert it to a double to hold date (integer) and time (decimal) components 
dbl = CDbl(dt) 

'dbl will = 42165.7916666667 
+0

有趣的方法,我會記住這一點,下一次 – lackdaz