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.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de