¿Cómo determinar la edad en el cuadro de texto en VBA?
Cree un nuevo formulario, dibuje un control de cuadro de texto TextBox1 y un control de etiqueta Label1 en él
Luego pruebe el siguiente código:
Private Sub TextBox1_Change()
Dim s$
s = TextBox1.Text
Si s = "" Entonces
Label1.Caption = " " p>
Else
Dim i, x
x = Len(s)
'Juzga cada posición sin exceder los 18 bits ¿Es correcto un carácter?
Si x lt; = 18 Entonces
'Juzga los caracteres del 1 al 17
Para i = 1 a x
Si i = 18 Then Exit For 'Exit for, la posición 18 se juzgará por separado a continuación
Seleccione Case Mid(s, i, 1)
Caso 0 a 9
Case Else
Label1.Caption = "Los dígitos "ésimo" e i "solo se pueden completar con números del 0 al 9"
Salir de Sub 'antes de Entre los 17 caracteres, si un determinado dígito no es un número, salga de esta línea sub
Finalizar selección
Siguiente
'Juzga el carácter número 18
Si x = 18 entonces
Seleccione Caso medio(s, 18, 1)
Caso 0 a 9, "x", "X"
Case Else
Label1.Caption = "El dígito 18 sólo se puede completar con 0-9, x, X"
Exit Sub 'El dígito 18, si no es un número o x o X, Salir del sub de esta línea
Finalizar selección
Finalizar si
Finalizar si
'Juicio de dígitos
Seleccione Caso x
El caso es lt; 18
Label1.Caption = "Menos de 18 dígitos (actualmente " amp; gt; 18
Label1.Caption = "Excediendo 18 bits (actualmente " & x & " bits)"
Caso más
En caso de error Ir a xxx 'Saltar a la posición especificada cuando se produce un error
Atenuado y, m, d
>
y = Val(Mid(s, 7, 4)) 'Año de cumpleaños
m = Val(Mid(s, 11, 2)) 'Mes de cumpleaños
d = Val(Mid(s, 13, 2)) 'Fecha de cumpleaños
x = Año(Fecha) - y - (DateSerial(Año(Fecha), m, d) lt; Fecha) ' Calcular un año
If Val(Mid(s, 17, 1)) Mod 2 Then
Label1.Caption = x amp "Un año, hombre" 'Si el 17 dígito es un número impar, entonces es un hombre
Else
Label1.Caption = x amp "Mujer de un año" 'Si el dígito 17 es un número par, es una mujer
End If
End Select
End If
Exit Sub 'Finaliza el programa desde esta línea si hay sin excepción
xxx:
Label1.Caption = "¡Hay un error en el cumpleaños!" 'Si hay un error al extraer el cumpleaños, saltará directamente a esta línea .
Fin del subtítulo