我必须根据我给出的时间查询报告。 有4个时间段:0,15,30,45。
例如,如果当前时间是13:44,我将使用时间13:15到13:30来查询我的报告;如果当前时间是13:04,我将使用12:30到13:45的时间来查询我的报告。
我编写了以下代码,但它使用了大量的If和Else。请帮我一些更好的代码。
Sub Test()
hh = Format(Time, "hh")
mm = Format(Time, "mm")
If (0 < mm < 15) Then mm = mm - 30
If (15 < mm < 30) Then mm = mm - 30
If (30 < mm < 45) Then mm = mm - 30
If (45 < mm < 60) Then mm = mm - 30
If (mm < 0) Then
mm = -mm
hr = hr - 1
End If
st = hh & "&" & mm
End Sub
答案 0 :(得分:0)
您可以使用一些小数学来向下舍入到特定的间隔,或者使工作表FLOOR功能发挥作用。
Option Explicit
Sub Test()
Dim tm As Double, st As String
tm = Application.Floor(Time, TimeSerial(0, 15, 0))
st = Format(tm, "hh\&mm")
Debug.Print st
End Sub