Excel VBA文本框时间validation为:mm

我正在开发一个VBA Excel用户窗体,需要input[h]:mm格式的时间。 这意味着小时可以是无限的,并且在23:59之后不会像hh:mm格式那样循环回0。 我search了networking无济于事。

这是我目前使用的代码:

Private Sub Txtbx_TimeAvailable_Exit(ByVal Cancel As MSForms.ReturnBoolean) If Me.Txtbx_TimeAvailable.Value <> Format(Me.Txtbx_TimeAvailable.Value, "[h]:mm") Then MsgBox "Please enter correct time format in hh:mm" Cancel = True Me.Txtbx_TimeAvailable.Value = vbNullString Else ThisWorkbook.Sheets(SELECTEDWORKSHEET).Range("C60").Value = Txtbx_TimeAvailable.Text Call UpdateDentistMainForm End If End Sub 

但是,如果我使用这个代码,如果我input25:53它将它转换为01:53。 我很感激任何帮助,我可以得到这一点。

您将需要手动parsing有效性,这是一种方法:

 Var = "59:59" Dim IsValid As Boolean Dim tok() As String: tok = Split(Var, ":") If (UBound(tok) = 1) Then '// `like` to prevent lead +/- IsValid = tok(0) Like "#*" And IsNumeric(tok(0)) And tok(1) Like "#*" And IsNumeric(tok(1)) And tok(1) < 60 '// optionally normalize by removing any lead 0 Var = Val(tok(0)) & ":" & Val(tok(1)) End If Debug.Print Var, IsValid