早上好,在IF語句中等於時間值
我有一個問題,即有關時間值的邏輯語句沒有按預期進行評估。
是否存在一個已知問題,從邏輯上等同於重複小數?
爲了清楚起見,這裏是一個有問題的代碼示例。
Function compareTimes(timeCurrent, timeStart, timeEnd, timeBreak1, Optional timeLunch As Variant, Optional timeBreak2 As Variant)
If timeCurrent >= timeStart And timeCurrent < timeEnd Then
If timeCurrent = timeBreak1 Or timeCurrent = timeBreak2 Then
compareTimes = "b"
ElseIf IsMissing(timeLunch) = False Then
timeLunchEnd = timeLunch + (1/48)
If timeCurrent >= timeLunch And timeCurrent < timeLunchEnd Then
compareTimes = "L"
Else
compareTimes = 1
End If
Else
compareTimes = 1
End If
Else
compareTime = 0
End If
End Function
函數的所有參數都是格式爲h:mm的Excel時間。 錯誤的一個示例是2nd If語句 - 當timeCurrent和timeBreak1在Excel中是同一個單元格時,函數按預期輸出「b」。 但是,如果timeCurrent和timeBreak1在具有相同值的不同單元格中(例如12:00),它將返回1。
任何幫助理解邏輯和浮點將不勝感激。
放在'Debug.Print CDbl(timeCurrent); CDbl(timeBreak1)'就在比較之上。顯示號碼是否相同? –