'Answer to OP question:
if TimeValue(Cells(1, 1).Value) < TimeValue("13:00:00") and _
Format(cells(1,1), "hh:mm:ss") <> Format(TimeValue("13:00:00"),"hh:mm:ss") then
字符串 这样你就可以保证,如果时间相等,但有一个微小的舍入差异,他们不会被认为是不同的。
以及日期/时间之间的“等于”比较的一些示例:
'Compare 2 date/time variables
Format(datetime1, "dd/mm/yyyy hh:mm:ss") = Format(datetime2,"dd/mm/yy hh:mm:ss")
'Compare 2 date/time variables where seconds are not important
Format(datetime1, "dd/mm/yyyy hh:mm") = Format(datetime2,"dd/mm/yy hh:mm")
'Compare a cell time to a constant time
Format(cells(1,1), "hh:mm") = Format(TimeValue("13:00:00"),"hh:mm")
Format(cells(1,1), "hh:mm") = Format(TimeSerial(13,0,0),"hh:mm")
'Compare a cell date to a constant date
Format(cells(1,1), "dd/mm/yyyy") = Format(DateSerial(2020,12,20), "dd/mm/yyyy")
5条答案
按热度按时间l7mqbcuq1#
字符串
应该可以
2ul0zpep2#
字符串
这里有一个完整的例子,你不能比较一个整数与一个字符串的整数值只能与一个具有相同的数据类型,即整数只比较类似的时间值可以与时间值(S)只比较。谢啦,谢啦
v64noz0r3#
所提出的使用TimeValue()的解决方案可能会遇到舍入误差,这在某些情况下会导致不正确的比较,例如当序列值中的1 E-17差异使2个时间值被视为不同时。
碰巧时间序列号实际上是一个Double,所以它是一个浮点数据类型,自然具有不精确性。
我发现避免任何舍入错误的最佳解决方案是比较格式字符串,方法是仅使用对应用程序重要的日期/时间部分对其进行格式化。您可以将其与TimeValue结合使用以获得正确的比较
示例:
字符串
这样你就可以保证,如果时间相等,但有一个微小的舍入差异,他们不会被认为是不同的。
以及日期/时间之间的“等于”比较的一些示例:
型
pcww981p4#
下面的代码从范围A1和A2中获取时间值,并显示A3中的差异。只是为了给予你一个公平的想法,它是如何工作的,谢谢
字符串
b1uwtaje5#
字符串
假的
型
-2.31481535593048E-05
型
-2.00000046752393