如何使用时间值格式化日期?

时间:2015-06-21 11:45:30

标签: excel-vba datetime vba excel

我觉得手头有一个相当简单的问题,但我对此感到非常困惑。到目前为止,我对日期非常熟悉并将它们转换为'Long'整数。但是,除了“交付日期”之外,我还必须在此特定实例中添加时间值以反映“交付时间”的情况。我知道excel-vba分别提供日期和时间的功能。我想知道如何将日期和日期反映出来,例如2015年6月10日,晚上7点或1900小时(请原谅我的非美国格式)为一个我可以使用的整数。像是这样的东西,例如:

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

但是额外的时间是晚上7点。很抱歉我的帖子相当冗长!

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

对于工作表和VBA, time 只是浮点值的小数部分。所以:

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