如何使用 VBA 在 Excel 中四舍五入日期和时间?
例如,用户从复制到单元格 A6 的日历中选择值 =“08/25/2016 09:02:00”
我以 15 分钟为间隔提取数据,所以我希望它是 A6 = "08/25/2016 09:00:00"
因此,如果用户选择的任何日期和时间不是 15 分钟的倍数,则应返回到之前的 15 分钟间隔值并提取数据。
取出分钟,将日期部分去掉以删除时间,然后通过使用 TimeSerial 构建它来将其添加回来:
Private Sub Example()
Dim foo As Date
foo = CDate("08/25/2016 09:02:00")
Dim minutes As Long
minutes = Minute(foo)
minutes = 15 * (minutes \ 15) 'Round down by 15 minute increments
foo = Int(foo) + TimeSerial(Hour(foo), minutes, 0)
Debug.Print foo
End Sub
Edit:就像 @Pekka 提到的那样,这也可以通过工作表公式来完成 - 这相当于上面的代码 VBA:
=INT(A6)+TIME(HOUR(A6),INT(MINUTE(A6) / 15) * 15, 0)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)