Operadores de comparação

Usado para comparar expressões.

Sintaxe

Resultado = expression1comparisonoperatorexpression2result = object1Isobject2 result = stringLikepattern

Os operadores de comparação têm estas partes:

Sair Descrição
resultado Obrigatório; qualquervariável numérica.
expression Obrigatório; qualquer expressão.
ComparisonOperator Obrigatório; qualquer operador de comparação.
objeto Obrigatório; Qualquer nome de objeto.
cadeia de caracteres Obrigatório; qualquer expressão de cadeia de caracteres.
padrão Obrigatório; Qualquer cadeia de caracteres, expressão ou intervalo de caracteres.

Comentários

A tabela a seguir contém uma lista dos operadores de comparação e as condições que determinam se o resultado é Verdadeiro, Falso ou Nulo.

Operador True se Falso se Null se
< (Menor que) expressão1<expressão2 expressão1>= expression2 expression1 ou expression2 = Null
<= (Menor ou igual a) expressão1<= expression2 expressão1>expressão2 expression1 ou expression2 = Null
> (Maior que) expressão1>expressão2 expressão1<= expression2 expression1 ou expression2 = Null
>= (Maior que ou igual a) expressão1>= expression2 expressão1<expressão2 expression1 ou expression2 = Null
= (Igual a) expressão1 = expressão2 expressão1<>expressão2 expression1 ou expression2 = Null
<> (Diferente de) expressão1<>expressão2 expressão1 = expressão2 expression1 ou expression2 = Null

Observação

Os operadores Is e Like têm uma funcionalidade de comparação específica que difere dos operadores na tabela.

Ao comparar duas expressões, talvez você não consiga determinar facilmente se elas estão sendo comparadas como números ou como cadeias de caracteres. A tabela a seguir mostra como as expressões são comparadas ou o resultado quando uma das expressões não é uma Variant.

Se Then
Ambas as expressões são tipos de dados numéricos (Byte, Booliano, Inteiro, Longo, Simples, Duplo, Data, Conversor de Moedas ou Decimal) Execute uma comparação numérica.
Ambas as expressões são String Faça uma comparação de cadeia de caracteres.
Uma expressão é um tipo de dados numérico e a outra é uma Variant que é, ou pode ser, um número Execute uma comparação numérica.
Uma expressão é um tipo de dados numérico e a outra é uma cadeia de caracteres Variant que não pode ser convertida em número Ocorre um Type Mismatch erro.
Uma expressão é uma String e a outra é qualquer Variant , exceto uma Null Faça uma comparação de cadeia de caracteres.
Uma expressão é Vazia e a outra é um tipo de dados numérico Execute uma comparação numérica, usando 0 como a expressão vazia .
Uma expressão é Empty e a outra é uma String Execute uma comparação de cadeia de caracteres, usando uma cadeia de comprimento zero ("") como a expressão Vazia .

Se expression1 e expression2 forem expressões Variant , seu tipo subjacente determinará como elas serão comparadas. A tabela a seguir mostra como as expressões são comparadas ou o resultado da comparação, dependendo do tipo subjacente do Variant.

Se Then
Ambas as expressões Variant são numéricas Execute uma comparação numérica.
Ambas as expressões Variant são cadeias de caracteres Faça uma comparação de cadeia de caracteres.
Uma expressão Variant é numérica e a outra é uma cadeia de caracteres A expressão numérica é menor que a expressão de cadeia de caracteres.
Uma expressão Variant é Vazia e a outra é numérica Execute uma comparação numérica, usando 0 como a expressão vazia .
Uma expressão Variant é Vazia e a outra é uma cadeia de caracteres Execute uma comparação de cadeia de caracteres, usando uma cadeia de comprimento zero ("") como a expressão Vazia .
Ambas as expressões Variant estão Vazias As expressões são iguais.

Quando um Single é comparado a um Double, o Double é arredondado para a precisão do Single. Se um Conversor de Moedas for comparado com um Simples ou Duplo, o Simples ou Duplo é convertido em um Conversor de Moedas.

Da mesma forma, quando um Decimal é comparado com um Simples ou Duplo, o Simples ou Duplo é convertido em um Decimal. Para Conversor de Moedas, qualquer valor fracionário menor que 0,0001 pode ser perdido; para Decimal, qualquer valor fracionário menor que 1E-28 pode ser perdido ou pode ocorrer um erro de estouro. Essa perda de valor fracionário pode fazer com que dois valores sejam comparados como iguais quando não são.

Exemplo

Este exemplo mostra vários usos de operadores de comparação, que você usa para comparar expressões.

Dim MyResult, Var1, Var2
MyResult = (45 < 35)    ' Returns False.
MyResult = (45 = 45)    ' Returns True.
MyResult = (4 <> 3)    ' Returns True.
MyResult = ("5" > "4")    ' Returns True.

Var1 = "5": Var2 = 4    ' Initialize variables.
MyResult = (Var1 > Var2)    ' Returns True.

Var1 = 5: Var2 = Empty
MyResult = (Var1 > Var2)    ' Returns True.

Var1 = 0: Var2 = Empty
MyResult = (Var1 = Var2)    ' Returns True.

Confira também

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.