Además de comprobar con las condiciones If...Then...Else y Select Case, también podemos utilizar las siguientes comprobaciones:
IsNumeric (la función que usamos en la lección anterior) devuelve VERDADERO (TRUE) si el valor es un número y FALSO (FALSE) si - no es un número:
If IsNumeric(Range("A1")) = True Then 'SI EL VALOR ES UN NÚMERO...
El siguiente código produce el mismo efecto que el anterior (no necesitamos incluir = True porque la construcción en sí es una verificación de condición):
If IsNumeric(Range("A1")) = True Then 'SI EL VALOR ES UN NÚMERO...
Si queremos comprobar si un valor no es un número, podemos hacerlo de dos formas:
If IsNumeric(Range("A1")) = False Then 'SI EL VALOR NO ES UN NÚMERO...
If Not IsNumeric(Range("A1")) Then 'SI EL VALOR NO ES UN NÚMERO...
Veamos algunas funciones más similares a IsNumeric:
If IsDate(Range("A1")) Then 'SI EL VALOR ES LA FECHA...
If IsEmpty(Range("A1")) Then 'SI ESTá VACÍO...
If var_object Is Nothing Then 'SI EL OBJETO NO ESTá DEFINIDO...
Para ejecutar comandos basados en el tipo de una variable, necesitaremos usar la función VarType.
La lista de tipos de variables aparecerá tan pronto como ingresemos el signo "=":
If VarType(my_variable) = vbInteger Then 'ЯÐЩРmy_variable Ñ Ñипом змÑÐ½Ð½Ð¾Ñ Integer ...
Valores de las constantes:
Constante | Valor |
vbEmpty | 0 |
vbNull | 1 |
vbInteger | 2 |
vbLong | 3 |
vbSingle | 4 |
vbDoble | 5 |
vbMoneda | 6 |
vbFecha | 7 |
vbString | 8 |
vbObjeto | 9 |
vbError | 10 |
If VarType(my_variable) = vbInteger Then 'ЯÐЩРmy_variable Ñ Ñипом змÑÐ½Ð½Ð¾Ñ Integer ... 'es idéntico a: If VarType(my_variable) = 2 Then 'ЯÐЩРmy_variable Ñ Ñипом змÑÐ½Ð½Ð¾Ñ Integer ...
Un poco antes usamos el siguiente fragmento de código:
my_variable = "Example 12345" If my_variable = "Example 12345" Then '=> VERDADERO (TRUE)
En este caso las dos cintas son iguales, pero si queremos comprobar si la variable contiene el valor "12345"; sin considerar otros caracteres, debemos usar el comando Like, y el operador * (asterisco) antes y después del valor que buscamos.
El operador * (asterisco) se descifra como: cualquier carácter o conjunto de caracteres:
my_variable = "Example 12345" If my_variable Like "*12345*" Then '=> VERDADERO (TRUE)
El operador # (hash) se decodifica como: cualquier carácter numérico único del 0 al 9:
my_variable = "Example 12345" If my_variable Like "Example 12###" Then '=> VERDADERO (TRUE)
¿Operador? (signo de interrogación) se descifra como: cualquier carácter único:
my_variable = "Example 12345" If my_variable Like "?xample?1234?" Then '=> VERDADERO (TRUE)
También podemos usar caracteres específicos o un conjunto de caracteres de la misma manera:
my_variable = "Example 12345" If my_variable Like "[DEF]ejemplo 1234[4-7]" Then '=> VERDADERO (TRUE)
¡Operador! (signo de exclamación) agregado después de [ significará: cualquier carácter que no esté entre corchetes:
my_variable = "Example 12345" If my_variable Like "[!GHIJ]ejemplo 1234[!6-9]" Then '=> VERDADERO (TRUE)