如何计算VBA的时差?

时间:2015-02-12 10:39:07

标签: excel vba excel-vba

我需要计算两次不同时间的差异。

例如,

time1 = 6:45 AM
time2 = 7:30 AM

然后,我需要将其转换为小时(整数)

所以在Basic Math中,这是:

timediff = time2 - time1
timediff = 0:45

timediff(in hrs) = 0 + (45/60)
timediff(in hrs) = 0.75

我需要在VBA中执行此操作。有人能帮我吗? 非常感谢!

3 个答案:

答案 0 :(得分:5)

DateDiff()计算此值(n表示分钟数):

?DateDiff("n", "6:45", "7:30") / 60
 0.75 

答案 1 :(得分:0)

这是我在谷歌搜索VBA timediff时遇到的第一个打击:http://www.ozgrid.com/forum/showthread.php?t=45698&p=231656#post231656

我相信它应该以最小的修改做你想做的事。

该帖子中定义的UDF是:

Function TimeDiff(StartTime As Date, StopTime As Date) 
    TimeDiff = abs(StopTime-StartTime) * 86400 
End Function 

答案 2 :(得分:0)

这对我有用。经过大量的开始,看起来很简单。 结果值dtDuration(实际上是一个double)也用于更新表中的Hours(双)字段。

Dim dtDuration As Double
dtDuration = DateDiff("s", CDate(strStarTime), CDate(strCompTime))

Me.txtCalcHours.SetFocus
Me.txtCalcHours.Text = dtDuration / 3600