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并使用Hour
, Minute
和Second
function。 由于Date
variables以Double
forms存储,整数部分表示自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