如何获得不到15分钟的时间

时间:2017-05-29 12:04:26

标签: excel vba excel-vba

我必须根据我给出的时间查询报告。 有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

1 个答案:

答案 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