Выделение значения времени из записи в ячейке - PullRequest
0 голосов
/ 29 февраля 2020

Я пытаюсь создать sub в vba, чтобы повторить процесс C через некоторое время, как указано в ячейке. K8 = 00:10:00 (текстовый формат).

Dim RunTimer As Date

Sub repeatA()
    'RunTimer = Now + TimeValue("00:10:00")
    RunTimer = Now + TimeValue(K8)
    Application.OnTime RunTimer, "repeatB"
End Sub

Sub repeatB()
    call processC
    call repeatA
End Sub

Sub processC()
    ...
End Sub

Работает хорошо, когда я использую RunTimer = Now + TimeValue("00:10:00"), но когда я попытался, как указано выше, я получил сообщение об ошибке ниже. Я хочу назначить "00:10:00" из записи ячейки K8. enter image description here

1 Ответ

1 голос
/ 29 февраля 2020

Вы не набрали 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

Numeric entry

Примеры текста

Если ваша ячейка на самом деле текст с формулами / отображениями, такими как:

  • ="00:10:00"
  • '00:10:00"

Тогда вы ДОЛЖНЫ использовать метод TimeValue Vba: RunTimer = Now + TimeValue(Range("K8").Value)

text entry

Проверьте, если 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

Надеюсь, это поможет.

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