Operadores de comparación
Se usa para comparar expresiones.
Sintaxis
resultado = expression1comparisonoperatorexpression2result = object1Isobject2result = stringLikepattern
Los operadores de comparación tienen estas partes:
Parte | Descripción |
---|---|
result | Obligatorio; cualquier variable numérica. |
expresión | Requerido; cualquier expresión. |
comparisonoperator | Requerido; cualquier operador de comparación. |
object | Requerido; nombre de cualquier objeto. |
string | Requerido; cualquier expresión de cadena. |
pattern | Requerido; cualquier expresión de cadena o rango de caracteres. |
Comentarios
La tabla siguiente contiene una lista de los operadores de comparación y las condiciones que determinan si el resultado es True, False o Null.
Operador | True si | False si | Null si |
---|---|---|---|
< (Menor que) |
expresión1<expresión2 | expresión1>= expresión2 | expression1 o expression2 = Null |
<= (Menor o igual que) |
expresión1<= expresión2 | expresión1>expresión2 | expression1 o expression2 = Null |
> (Mayor que) |
expresión1>expresión2 | expresión1<= expresión2 | expression1 o expression2 = Null |
>= (Mayor o igual que) |
expresión1>= expresión2 | expresión1<expresión2 | expression1 o expression2 = Null |
= (Igual a) |
expresión1 = expresión2 | expresión1<>expresión2 | expression1 o expression2 = Null |
<> (No es igual a) |
expresión1<>expresión2 | expresión1 = expresión2 | expression1 o expression2 = Null |
Nota:
[!NOTA] Los operadores Is y Like tienen una funcionalidad de comparación específica que difiere de los operadores de la tabla.
Al comparar dos expresiones, es posible que no pueda determinar fácilmente si las expresiones se van a comparar como números o como cadenas. En la tabla siguiente se muestra cómo se comparan las expresiones o el resultado cuando cualquiera de las expresiones no es variant.
Si | Then |
---|---|
Ambas expresiones son tipos de datos numéricos (Byte, Boolean, Integer, Long, Single, Double, Date, Currency o Decimal) | Realizan una comparación de números. |
Ambas expresiones son String | Realizan una comparación de cadenas. |
Una expresión es un tipo de datos numérico y la otra es un valor Variant que es, o puede ser, un número | Realizan una comparación de números. |
Una expresión es un tipo de datos numérico y la otra es un valor Variant de cadena que no se puede convertir en un número | Se produce un Type Mismatch error. |
Una expresión es un valor String y la otra es cualquier valor Variant excepto Null | Realizan una comparación de cadenas. |
Una expresión es Empty y la otra es un tipo de datos numéricos | Realizan una comparación de números, usando 0 como la expresión Empty. |
Una expresión es Empty y la otra es String | Realizan una comparación de cadenas, usando una cadena de longitud cero ("") como la expresión Empty. |
Si expresión1 y expresión2 son expresiones Variant, su tipo subyacente determina cómo se comparan. En la tabla siguiente se muestra cómo se comparan las expresiones o el resultado de la comparación, en función del tipo subyacente de Variant.
Si | Then |
---|---|
Ambas expresiones Variant son numéricas | Realizan una comparación de números. |
Ambas expresiones Variant son cadenas | Realizan una comparación de cadenas. |
Una expresión Variant es numérica y la otra es una cadena | La expresión numérica es inferior que la expresión de cadena. |
Una expresión Variant es Empty y la otra es numérica | Realizan una comparación de números, usando 0 como la expresión Empty. |
Una expresión Variant es Empty y la otra es una cadena | Realizan una comparación de cadenas, usando una cadena de longitud cero ("") como la expresión Empty. |
Ambas expresiones Variant son Empty | Las expresiones son iguales. |
Cuando una Single se compara con una Double, la Double se redondea a la precisión de Single. Si una Currency se compara con una Single o Double, Single o Double se convierte a Currency.
De forma similar, cuando una Decimal se compara con una Single o Double, Single o Double se convierte a Decimal. Para Currency, cualquier valor fraccional inferior a 0,0001 se puede perder; para Decimal, cualquier valor fraccional inferior a 1E-28 se puede perder, o puede producirse un error de desbordamiento. Esa pérdida de valor fraccional puede causar que se comparen dos valores como equivalentes cuando no lo son.
Ejemplo
Este ejemplo muestra varios usos de operadores de comparación que usa para comparar expresiones.
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.
Vea también
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.