Function esHora(ByVal txt As String) As Boolean
Dim arr() As String = txt.Split(":")
If arr.GetLength(0) < 2 Then
Return False
ElseIf Not IsNumeric(arr(0)) Then
Return False
ElseIf Not IsNumeric(arr(1)) Then
Return False
ElseIf Not IsNumeric(arr(2)) Then
Return False
ElseIf arr(0) < 0 Or arr(0) > 23 Then
Return False
ElseIf arr(1) < 0 Or arr(0) > 59 Then
Return False
ElseIf arr(2) < 0 Or arr(0) > 59 Then
Return False
End If
Return True
End Function
2 cosas, que no has tenido en cuenta:
A - Este es un post del 2003 es decir de hace 6 años... mala cosa si el autor aún estuviera esperando respuesta. No resucites post muertos
B - Éste foro es de
VB6, el código que expones no se aplica aquí.
Para la fecha, (si no se refiere concretamente a la hora)... Hay soluciones bastante mejores que cualquiera de las expuestas en este hilo, en los foros de vb6 ( a día de hoy) sólo es cuestión de buscar. Concretamente usar un control DTPicker (Date Time Picker). Permite opciones de formato y no requiere complejidades de validación ya que puede fijar el rango de fechas admitidas (propiedades maxDate y minDate) y permite al usuario (por torpe que sea) elegir una fecha siempre válida.
Para la hora VBA.DateTime tiene funciones específicas para tratar adecuadamente la hora...