Operadores de comparação

Usado para comparar expressões.

Sintaxe

Resultado = expression1comparisonoperatorexpression2result = object1Isobject2result = 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.
comparativo Necessário; qualquer operador de comparação.
objeto Necessário; qualquer nome de objeto.
cadeia de caracteres Obrigatório; qualquer expressão de cadeia de caracteres.
padrão Necessário; qualquer expressão de cadeia de caracteres 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 é True, False ou Null.

Operador True se False se Nulo se
< (Menor que) expression1<expression2 expression1> = expression2 expression1 ou expression2 = Null
<= (Menor ou igual a) expression1< = expression2 expression1>expression2 expression1 ou expression2 = Null
> (Maior que) expression1>expression2 expression1< = expression2 expression1 ou expression2 = Null
>= (Maior ou igual a) expression1> = expression2 expression1<expression2 expression1 ou expression2 = Null
= (Igual a) expression1 = expression2 expression1<>expression2 expression1 ou expression2 = Null
<> (Não igual a) expression1<>expression2 expression1 = expression2 expression1 ou expression2 = Null

Observação

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

Ao comparar duas expressões, talvez você não seja capaz de determinar facilmente se as expressões 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 expressão não é uma Variant.

Se Then
Ambas as expressões são tipos de dados numéricos (Byte, Boolean, Integer, Long, Single, Double, Date, Conversor de Moedas ou Decimal) Execute uma comparação numérica.
Ambas as expressões são String Execute 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 Variant de cadeia de caracteres que não pode ser convertida em um número Ocorre um Type Mismatch erro.
Uma expressão é uma Cadeia de Caracteres e a outra é qualquer Variant , exceto um Null Execute uma comparação de cadeia de caracteres.
Uma expressão é Vazia e a outra é um tipo de dados numéricos Execute uma comparação numérica, usando 0 como a expressão Vazia .
Uma expressão é Vazia e a outra é uma Cadeia de Caracteres Execute uma comparação de cadeia de caracteres usando uma cadeia de caracteres de comprimento zero ("") como a expressão Vazia .

Se expression1 e expression2 forem expressões Variant , seu tipo subjacente determinará como eles são comparados. A tabela a seguir mostra como as expressões são comparadas ou o resultado da comparação, dependendo do tipo subjacente da 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 Execute 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 caracteres de comprimento zero ("") como a expressão Vazia .
Ambas as expressões Variant sã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 Único ou Duplo, o Single ou Double será convertido em um Conversor de Moedas.

Da mesma forma, quando um Decimal é comparado com um Único ou Duplo, o Único ou Duplo é convertido em um Decimal. Para Conversor de Moedas, qualquer valor fracionário menor que .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.