Вы не набрали Range , что, вероятно, является вашей основной проблемой. Также имеет значение, если значение вашей ячейки равно цифра c или текст .
Нумери c Примеры
В этом примере ниже я набрал 00:10:00
это в ячейку (без знака равенства). Excel преобразует это в десятичную (.0069444
- по сути, процент от полного дня). На дисплее может отображаться десятичное число или время, например 12:10:00 AM
. Независимо от этого это значение цифра c, которое не нужно преобразовывать с помощью VBA.
Другая ситуация с цифрой c была бы, если бы формула ячейки была: =TIMEVALUE("00:10:00")
, которая преобразует точно так же .0069444
.
Все цифры c должны работать с этим кодом VBA:
RunTimer = Now + Range("K8").Value
Примеры текста
Если ваша ячейка на самом деле текст с формулами / отображениями, такими как:
Тогда вы ДОЛЖНЫ использовать метод TimeValue Vba: RunTimer = Now + TimeValue(Range("K8").Value)
Проверьте, если Numeri c или Text
Вы также можете попробовать сделать его динамическим c, протестировав с помощью isNumeri c (хотя это могут возникнуть некоторые проблемы, в зависимости от файла Excel)
If IsNumeric(Range("K8")) Then
RunTimer = Now + Range("K8").Value
Else
RunTimer = Now + TimeValue(Range("K8"))
End If
Надеюсь, это поможет.