在VBA Excel中处理时间时得到错误的值

时间:2019-03-07 08:20:12

标签: excel vba

我正在尝试在使用宏的Excel工作表中进行一些计算,我正在处理时间值。

 h2 = rg.Cells(i, 5) 'time value
 h1 = rg.Cells(i, 4) 'time value
 h3 = (TimeValue("23:59") - h1) + (h2 - TimeValue("23:59"))

例如,当h1="20:00"h2="07:55" h3应该为11:55时却出现了12:05

顺便说一句H1是入场时间,H2是超时时间,因此h2在第二天,我正在尝试计算时间差。

enter image description here

致谢

2 个答案:

答案 0 :(得分:1)

由于您指出的是,H2是H1的第二天,因此您需要将其纳入计算。

因此,要计算H1和H2之间的差异,应先将24小时添加到H2中。

  h2  +  1dy
07:55 + 24:00 = 31:55

                  v
                         -h1
                31:55 - 20:00 = 11:55

以时间表示的一天是1-时间以一天的小数部分表示。

因此,除其他外,要达到上述要求,您的公式应为:

h3 = (h2 + 1) - h1

答案 1 :(得分:0)

实际上正确的答案是 11:05:00,但是Excel不能处理负时间。负11:05 :: 00加上一天等于正数12:05:00。