Как проверить, является ли строка допустимым значением ЧЧММСС в Excel VBA? - PullRequest
0 голосов
/ 14 октября 2018

Следующий код, кажется, не работает, когда я передаю ему следующее:

"023000" и "ЧЧММСС"

Я получаю обратно "000000", несмотря ни на что.

Function formatTime(tStr As String, tFormat As String) As String
    If tStr <> "" Then
        formatTime = format(tStr, tFormat)
    Else
        formatTime = "NAT" 'Not A Time
    End If
End Function

1 Ответ

0 голосов
/ 14 октября 2018

По сути, вам нужен временной эквивалент функции IsDate.Однако, поскольку нет встроенной функции IsTime , вы можете сделать ее самостоятельно:

Sub Is_It_A_Time()
    Debug.Print IsTime("12:34:56") ' Returns True
    Debug.Print IsTime("12:34:60") ' Returns False
    Debug.Print IsTime("13:34:00") ' Returns True
    Debug.Print IsTime("25:01:02") ' Returns False
End Sub

Function IsTime(Expression As Variant) As Boolean
    If IsDate(Expression) Then
        IsTime = (Int(CSng(CDate(Expression))) = 0)
    End If
End Function
...