Es muy sencillo, sólo son un par de condiciones para evaluar cada caracter, y determinar si está en el rango de valores de los caracteres ASCII que necesitas.
Te dejo un código que sirve para reconocer lo que necesitas, en lugar de usar muchos If que alentizan el proceso usé una comparación binaria.
Insertar Renglón de tabla
Te dejo abajo una explicación de lo que hace el código. La siguiente tabla indica en qué casos IsAscii será True.
iChar mayor o igual que vbKeyA (letra A) y menor o igual que vbKeyZ (letra Z)
iChar mayor o igual que vbKeyA+32 (letra a) y menor o igual que vbKeyZ+32 (letra z)
iChar mayor o igual a 48 (número 0) y menor o igual a 57 (número 9)
Saludos.
Angellore.
Te dejo un código que sirve para reconocer lo que necesitas, en lugar de usar muchos If que alentizan el proceso usé una comparación binaria.
Insertar Renglón de tabla
Te dejo abajo una explicación de lo que hace el código. La siguiente tabla indica en qué casos IsAscii será True.
iChar mayor o igual que vbKeyA (letra A) y menor o igual que vbKeyZ (letra Z)
iChar mayor o igual que vbKeyA+32 (letra a) y menor o igual que vbKeyZ+32 (letra z)
iChar mayor o igual a 48 (número 0) y menor o igual a 57 (número 9)
Código [Seleccionar]
Function IsAscii(ByVal Data As String) As Boolean
Dim i&, iChar%
For i = 1 To Len(Data)
iChar = Asc(Mid$(Data, i, 1))
IsAscii = (((iChar >= vbKeyA) And (iChar <= vbKeyZ)) Or _
((iChar >= vbKeyA + 32) And (iChar <= vbKeyZ + 32)) Or _
((iChar >= 48) And (iChar <= 57)))
If Not IsAscii Then Exit For
Next
End Function
Saludos.
Angellore.