Além de verificar as condições If...Then...Else e Select Case, também podemos usar as seguintes verificações:
IsNumeric (a função que usamos na lição anterior) retorna TRUE (TRUE) se o valor for um número e FALSE (FALSE) se - não for um número:
If IsNumeric(Range("A1")) = True Then 'SE O VALOR FOR NÚMERO...
O código a seguir produz o mesmo efeito que o anterior (não precisamos incluir = True porque a construção em si é uma verificação de condição):
If IsNumeric(Range("A1")) = True Then 'SE O VALOR FOR NÚMERO...
Se quisermos verificar se um valor não é um número, podemos fazê-lo de duas maneiras:
If IsNumeric(Range("A1")) = False Then 'SE O VALOR NÃO FOR UM NÚMERO...
If Not IsNumeric(Range("A1")) Then 'SE O VALOR NÃO FOR UM NÚMERO...
Vejamos mais algumas funções semelhantes a IsNumeric:
If IsDate(Range("A1")) Then 'SE O VALOR FOR DATA...
If IsEmpty(Range("A1")) Then 'SE VAZIO...
If var_object Is Nothing Then 'SE O OBJETO NÃO ESTÁ DEFINIDO ...
Para executar comandos baseados no tipo de variável, precisaremos usar a função VarType.
A lista de tipos de variáveis aparecerá assim que inserirmos o sinal "=":
If VarType(my_variable) = vbInteger Then 'SE my_variable for do tipo variável Integer ...
Values das constantes:
Constante | Valor |
---|---|
vbEmpty | 0 |
vbNull | 1 |
vbInteger | 2 |
vbLong | 3 |
vbSingle | 4 |
vbDouble | 5 |
vbCurrency | 6 |
vbDate | 7 |
vbString | 8 |
vbObject | 9 |
vbError | 10 |
If VarType(my_variable) = vbInteger Then 'SE my_variable for do tipo variável Integer ... 'É idêntico a: If VarType(my_variable) = 2 Then 'SE my_variable for do tipo variável Integer ...
Um pouco antes, usamos o seguinte trecho de código:
my_variable = "Example 12345" If my_variable = "Example 12345" Then '=> VERDADEIRO (TRUE)
Neste caso as duas fitas são iguais, mas se quisermos verificar se a variável contém o valor “12345”; sem considerar outros caracteres, então devemos usar o comando Like, e o operador * (asterisco) antes e depois do valor que procuramos.
O operador * (asterisco) significa: qualquer caractere ou conjunto de caracteres:
my_variable = "Example 12345" If my_variable Like "*12345*" Then '=> VERDADEIRO (TRUE)
O operador # (hash) é decodificado como: qualquer caractere numérico único de 0 a 9:
my_variable = "Example 12345" If my_variable Like "Example 12###" Then '=> VERDADEIRO (TRUE)
Operador? (ponto de interrogação) é decifrado como: qualquer caractere único:
my_variable = "Example 12345" If my_variable Like "?xample?1234?" Then '=> VERDADEIRO (TRUE)
Também podemos usar caracteres específicos ou um conjunto de caracteres da mesma forma:
my_variable = "Example 12345" If my_variable Like "[DEF]xample 1234[4-7]" Then '=> VERDADEIRO (TRUE)
Operador! (ponto de exclamação) adicionado depois de [ significará: qualquer caractere não entre colchetes:
my_variable = "Example 12345" If my_variable Like "[!GHIJ]xample 1234[!6-9]" Then '=> VERDADEIRO (TRUE)