我具有时间单位的小时和分钟。我现在只需将小时和分钟与时间进行比较即可执行条件。
下面的代码转换时间值,并返回PM的负值并给出错误。如果我不提取时间,它将比较小时的分钟和秒,如果时间为00:00:01,则该分钟和秒将自动为假。
任何建议
Sub country_despatch(ByVal StartRow As Long)
Dim MyTime As Double
Dim MyDate As Date
Dim LastRow As Long
LastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "B").End(xlUp).Row
Dim iRow As Long
For iRow = StartRow To LastRow
MyDate = Sheet1.Cells(iRow, "B").Value 'value into date format
MyTime = CDbl(MyDate) - CLng(MyDate) 'extract only the time from a date/time
Call display(MyTime, iRow)
Debug.Print "date", MyDate, CDbl(MyDate)
Debug.Print "time part", MyTime
Next iRow
End Sub
仅将小时和分钟与现在的小时和分钟进行比较并返回true或false的预期结果
答案 0 :(得分:0)
考虑一下您的代码在做什么。在Excel中从日期提取时间的常用方法是=Value - INT(Value)
。而不是INT
,而是使用Clng' [which rounds up the input number][1] instead of [returning its integer value][2]. By substituting
CLng for
INT`,您已经完全改变了代码计算时间的方式:
对比
MyTime = CDbl(a) - Int(a)
与
MyTime = CDbl(a) - CLng(a)
使用上午和下午时间。