首页 > 解决方案 > 在 vba excel 中处理时间时得到错误的值

问题描述

我正在尝试在我使用宏的 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 在第二天,我正在尝试计算时间的延迟。

在此处输入图像描述

问候

标签: excelvba

解决方案


正如您所指出的,因为 H2 是 H1 之后的一天,所以您需要在计算中考虑到这一点。

所以要计算 H1 和 H2 之间的差异,应该先在 H2 上加上 24 小时。

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

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

以时间的形式呈现的一天1- 因为时间以一天的小数部分来衡量。

因此,在许多其他方法中,要获得上述内容,您的公式应该是:

h3 = (h2 + 1) - h1


推荐阅读