Ahs*_*han 5 excel vba excel-vba
如何使用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
Run Code Online (Sandbox Code Playgroud)
编辑:就像@Pekka 提到的,这也可以用工作表公式来完成 - 这相当于上面的代码 VBA:
=INT(A6)+TIME(HOUR(A6),INT(MINUTE(A6) / 15) * 15, 0)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4951 次 |
| 最近记录: |