如何在VBA中以分钟为单位获取时间

时间:2018-06-20 20:03:29

标签: excel-vba access-vba vba excel

我在VBA中存储大量数据,后来在excel中导出该文件。 如果时间大于一个小时,我可以收集时间,但是如果时间小于59分钟,则无法收集时间。 我正在使用类似的函数来计算时差

  1. //获得时间差00:00
  2. var time = TIMEDIFF('00:00',$ inspection_time);
  3. //例如,检查时间为12:00 pm,结果应为0.5
  4. 可变汇率=时间/ 24;
  5. SETRESULT(rate);

1 个答案:

答案 0 :(得分:0)

首先,TIMEDIFF是我没有立即找到其文档的功能。

此外,时间/日期通常以天为单位。

要获取小时数,您需要将乘以乘以24以得到小时数(然后是60表示分钟等,以此类推),而不是除以。

使用现有功能

使用内置函数计算时间差的简单方法是使用DateDiff,其签名为:

DateDiff( interval, date1, date2, [firstdayofweek], [firstweekofyear] )

您可以选择很多间隔,从一年到第二秒不等。分钟是“ n”。

例如:

DateDiff("n", "00:00", "12:00") '-> Result: 0.5

文档:msdn.microsoft.com/.../datediff-function

简单数学版

更简单的是减去:

abs(time2 - time1)

结果将以天为单位。

编辑:

我鼓励您确保您的功能完全符合您的期望,而不只是将某些东西组合在一起,而且会在进一步的更改中断时起作用。这是糟糕的编码实践,您从中学不到任何东西。

但是,为了做出回应,一种简单的回旋方式可以使一小时的最低截止时间成为您想要的最小值,然后将其与您的值进行比较,然后选择较大的值。两个。

calculatedValue <- SomeNumber
cutoffValue <- 1/24
chosenValue <- MAX(calculatedValue, cutoffValue)