如何在Excel VBA中检查字符串是否为有效的HHMMSS值?

时间:2018-10-14 16:22:20

标签: excel-vba

当我将以下内容传递给它时,以下代码似乎无法解决问题:

“ 023000”和“ HHMMSS”

无论如何我都会得到“ 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 :(得分:2)

基本上,您需要与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