получить неверное значение при работе со временем в VBA Excel - PullRequest
0 голосов
/ 07 марта 2019

Я пытаюсь выполнить некоторые вычисления на своем листе 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

BTW H1 - время входа, а H2 - время ожидания, поэтому h2 - на следующий день, и я пытаюсь вычислить разницувремени.

enter image description here

привет

Ответы [ 2 ]

1 голос
/ 07 марта 2019

Поскольку H2, как вы указали, является днем ​​после H1, вам необходимо учесть это в своих расчетах.

Таким образом, чтобы вычислить разницу между H1 и H2, к H2 нужно добавить 24 часа.first.

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

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

Один день, представленный как время, равен 1 - время измеряется как десятичная дробь дня.

Так что среди многих других способов сделать это,получить выше, ваша формула должна быть:

h3 = (h2 + 1) - h1

0 голосов
/ 07 марта 2019

На самом деле правильный ответ - минус 11:05:00, но Excel не обрабатывает отрицательное время. Добавление одного дня к минусу 11: 05 :: 00 равняется положительному 12: 05: 00.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...