Operadores de comparação
Utilizado 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. |
operador de comparação | 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 ou intervalo de carateres. |
Comentários
A tabela seguinte contém uma lista dos operadores de comparação e as condições que determinam se o resultado é Verdadeiro, Falso ou Nulo.
Operador | Verdadeiro se | Falso se | Nulo se |
---|---|---|---|
< (Menor que) |
expressão1<expressão2 | expressão1>= expressão2 | expressão1 ou expressão2 = Nulo |
<= (Menor ou igual a) |
expressão1<= expressão2 | expressão1>expressão2 | expressão1 ou expressão2 = Nulo |
> (Maior que) |
expressão1>expressão2 | expressão1<= expressão2 | expressão1 ou expressão2 = Nulo |
>= (Maior ou igual a) |
expressão1>= expressão2 | expressão1<expressão2 | expressão1 ou expressão2 = Nulo |
= (Igual a) |
expressão1 = expressão2 | expressão1<>expressão2 | expressão1 ou expressão2 = Nulo |
<> (Não igual a) |
expressão1<>expressão2 | expressão1 = expressão2 | expressão1 ou expressão2 = Nulo |
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, poderá não conseguir determinar facilmente se as expressões estão a ser comparadas como números ou como cadeias de carateres. A tabela seguinte mostra como as expressões são comparadas ou o resultado quando uma das expressões não é uma Variante.
Se | Then |
---|---|
Ambas as expressões são tipos de dados numéricos (Byte, Booleano, Número Inteiro, Longo, Único, Duplo, Data, Conversor de Moedas ou Decimal) | Efetue uma comparação numérica. |
Ambas as expressões são Cadeia | Efetue uma comparação de cadeias de carateres. |
Uma expressão é um tipo de dados numérico e a outra é uma Variante que é, ou pode ser, um número | Efetue uma comparação numérica. |
Uma expressão é um tipo de dados numérico e a outra é uma Variante de cadeia que não pode ser convertida num número | Ocorre um Type Mismatch erro. |
Uma expressão é uma Cadeia e a outra é qualquer Variante, exceto um Nulo | Efetue uma comparação de cadeias de carateres. |
Uma expressão é Vazia e a outra é um tipo de dados numérico | Efetue uma comparação numérica com 0 como expressão Empty . |
Uma expressão é Vazia e a outra é uma Cadeia | Efetue uma comparação de cadeias de carateres com uma cadeia de comprimento zero ("") como a expressão Vazio . |
Se expressão1 e expressão2 forem ambas expressões variantes , o tipo subjacente determina como são comparadas. A tabela seguinte mostra como as expressões são comparadas ou o resultado da comparação, consoante o tipo subjacente da Variante.
Se | Then |
---|---|
Ambas as expressões de Variantes são numéricas | Efetue uma comparação numérica. |
Ambas as expressões variant são cadeias | Efetue uma comparação de cadeias de carateres. |
Uma expressão variant é numérica e a outra é uma cadeia | A expressão numérica é inferior à expressão de cadeia. |
Uma expressão de Variante está Vazia e a outra é numérica | Efetue uma comparação numérica com 0 como expressão Empty . |
Uma expressão variante é Vazia e a outra é uma cadeia | Efetue uma comparação de cadeias de carateres com uma cadeia de comprimento zero ("") como a expressão Vazio . |
Ambas as expressões de Variante estão Vazias | As expressões são iguais. |
Quando um Único é comparado a um Duplo, o Duplo é arredondado para a precisão de Single. Se um Conversor de Moedas for comparado com um Único ou Duplo, o Single ou Double é convertido num Conversor de Moedas.
Da mesma forma, quando um Decimal é comparado com um Único ou Duplo, o Single ou Double é convertido num Decimal. Por Conversor de Moedas, qualquer valor fracionário inferior a 0,0001 pode ser perdido; para Decimal, qualquer valor fracionário inferior a 1E-28 pode ser perdido ou pode ocorrer um erro de capacidade excedida. Essa perda de valor fracionário pode fazer com que dois valores se comparem como iguais quando não são.
Exemplo
Este exemplo mostra várias utilizações de operadores de comparação, que utiliza 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.