2016-12-18 217 views
2

我想显示使用vba的两个时间戳之间的天数或小时数或分钟或秒数。VBA锻炼两个时间戳之间有多少天,几小时,几分钟或几秒钟?

到目前为止,我的代码给了我几小时或几天。

Sub Date_Dif() 

    Dim d1 As Date 
    d1 = Range("A8").Value 

    Dim d2 As Date 
    d2 = Now 

    Dim hrsDiff As Long 
    hrsDiff = DateDiff("h", d1, d2) 

    ActiveSheet.Range("Z5").Value = IIf(hrsDiff >= 24, _ 
       hrsDiff \ 24 & " days " & hrsDiff Mod 24 & " hours", _ 
       hrsDiff & " hours") 

End Sub 

我该如何适应这个给我几分钟或几秒?

在此先感谢

回答

4

最简单的方法是减去日期和使用HourMinute,并Second功能。由于Date变量存储为代表纪元以来的天整数部分Double,可以减法后直接使用,对天:

Dim diff As Date 
diff = Now - #7/7/2016 2:15:16 PM# 
Debug.Print CLng(Int(diff)) & " days" 
Debug.Print Hour(diff) & " hours" 
Debug.Print Minute(diff) & " minutes" 
Debug.Print Second(diff) & " seconds" 

把它插入到你的Sub,你会得到这样的事情:

Sub Date_Dif() 

    Dim d1 As Date 
    d1 = Range("A8").Value 

    Dim diff As Date 
    diff = Now - d1 

    ActiveSheet.Range("Z5").Value = _ 
       CLng(Int(diff)) & " days " & _ 
       Hour(diff) & " hours " & _ 
       Minute(diff) & " minutes " & _ 
       Second(diff) & " seconds" 
End Sub 
相关问题