Compartir a través de


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.