VBA锻炼两个时间戳之间有多less天,几小时,几分钟或几秒?

我正在尝试使用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 

我怎么能适应这个给我几分钟或几秒?

提前致谢

最简单的方法是减去date并使用HourMinuteSecondfunction。 由于Datevariables以Doubleforms存储,整数部分表示自epoch以来的天数,所以可以在减法之后直接使用该天数:

 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