Comparación de VBA Operators: No iguales, Less que o igual a
ā” Resumen inteligente
Comparación de VBA OperaLos operadores comparan un valor con otro y devuelven Verdadero o Falso. Esta pÔgina define los seis operadores, los muestra dentro de una instrucción If, explica cómo se comparan textos y fechas, y enumera los errores que producen resultados incorrectos.

Comparación de VBA Operatoros
Estos son operadores que se utilizan para comparar valores. Los operadores de comparación incluyen igual a, menor que, mayor que y distinto de.
Los operadores de comparación se utilizan para comparar valores con fines de validación. Digamos que estÔs desarrollandoping Una aplicación de punto de venta sencilla. En esta aplicación, se desea validar los valores introducidos antes de registrar la transacción. Para ello, se pueden utilizar operadores de comparación. Este operador comprueba si hay números negativos o si el importe pagado no supera el importe facturado. Los operadores de comparación resultan muy útiles en estas situaciones.
Cada comparación devuelve uno de dos valores, Verdadero o Falso, y nunca un número. Sobre ese resultado actúa una instrucción If.
La siguiente tabla enumera los operadores de comparación definidos en VBA.
| Operator | Mareas Ideales para Lecciones |
|---|---|
| = | Igual: comprueba si dos valores son iguales. También se utiliza como operador de asignación. |
| < | Less que: comprueba si el valor de la izquierda es menor que el valor de la derecha. |
| > | Mayor que: comprueba si el valor de la izquierda es mayor que el valor de la derecha. |
| <> | Distinto de: comprueba si dos valores son diferentes entre sĆ. |
| <= | Less menor o igual que: comprueba si el valor de la izquierda es menor o igual que el valor de la derecha. |
| >= | Mayor o igual que: comprueba si el valor de la izquierda es mayor o igual que el valor de la derecha. |
Ver cómo se aplica cada operador a dos variables facilita la predicción del resultado obtenido.
Comparación de VBA Operators con ejemplo
La siguiente tabla muestra la comparación de Excel VBA Operators con ejemplos y resultados.
| S / N | Operator | Ejemplo | Resultado |
|---|---|---|---|
| 1 | = | Si x = z Entonces | Devuelve verdadero si son iguales, en caso contrario devuelve falso |
| 2 | < | Si x < z entonces | Devuelve verdadero si x es menor que z, en caso contrario devuelve falso |
| 3 | > | Si x > z Entonces | Devuelve verdadero si x es mayor que z, en caso contrario devuelve falso |
| 4 | <> | Si x <> z Entonces | Devuelve verdadero si no son iguales, en caso contrario devuelve falso |
| 5 | <= | Si x <= z Entonces | Devuelve verdadero si x es menor o igual que z, en caso contrario devuelve falso |
| 6 | >= | Si x >= z Entonces | Devuelve verdadero si x es mayor o igual que z, en caso contrario devuelve falso |
Código fuente de ejemplo
Comparación igualitaria Operator
If 2 = 1 Then MsgBox "True", vbOKOnly, "Equal Operator" Else MsgBox "False", vbOKOnly, "Equal Operator" End If
AQUĆ,
- āSi 2 = 1 Entonces⦠De lo contrario⦠Termina siā utiliza la declaración if para evaluar la condición "2 = 1"
- āMensajeBox... " Es una función incorporada que muestra un cuadro de mensaje.
- El primer parĆ”metro āVerdaderoā o āFalsoā es lo que se mostrarĆ” en el cuadro de mensaje. En nuestro ejemplo, 2 no es igual a 1, por lo tanto, se mostrarĆ” āfalsoā en el cuadro de mensaje.
- El segundo parĆ”metro āvbOKOnlyā es el botón que se muestra en el cuadro de mensaje.
- El tercer parĆ”metro āIgual Operaātorā es el tĆtulo del cuadro de mensaje.
Al ejecutar el código anterior se obtienen los siguientes resultados
Esa única prueba es la forma mÔs simple. Las macros reales combinan comparaciones y se ramifican entre varios resultados.
Cómo utilizar la comparación Operators en una instrucción If
Un operador de comparación rara vez resulta útil por sà solo. Su resultado (verdadero o falso) se introduce en una estructura de decisión, y la instrucción condicional (if) es la que mÔs se utiliza. El siguiente ejemplo evalúa una puntuación almacenada en la celda A1 y muestra el resultado junto a ella.
Sub GradeScore() Dim Score As Long Score = Sheet1.Range("A1").Value If Score >= 90 Then Sheet1.Range("B1").Value = "Distinction" ElseIf Score >= 50 Then Sheet1.Range("B1").Value = "Pass" ElseIf Score < 0 Then MsgBox "A score cannot be negative", vbCritical, "Invalid Entry" Else Sheet1.Range("B1").Value = "Fail" End If End Sub
La macro lee la puntuación una vez y luego la compara con tres condiciones en orden. Cuatro puntos explican por qué se comporta de esa manera.
- El orden importa: VBA se detiene en la primera rama que devuelve True. Colocando Puntuación >= 50 antes Puntuación >= 90 CalificarĆa cada puntuación alta como un aprobado.
- De lo contrario, es la opción comodĆn: Cualquier valor que no supere todas las pruebas anteriores pasa a la fase Else, por lo que ninguna entrada queda sin procesar.
- Sin encadenamiento: VBA no puede leer 0 <= Puntuación <= 100. Escribir Si Puntuación >= 0 Y Puntuación <= 100 Entonces mediante el operadores logicos .
- La misma prueba, otras estructuras: La misma condición rige los bucles Do While y Select Case, por lo que los operadores se transfieren a todos los bucles que escribas.
š” Consejo: Declara la variable con un tipo numĆ©rico, como se muestra con Puntuación tenue durante mucho tiempo. Si el valor permanece como un texto de tipo Variant, ā9ā > ā10ā Devuelve True porque la comparación se realiza carĆ”cter por carĆ”cter.
Comparación de texto y fechas en VBA
Numbers Las comparaciones se realizan exactamente como lo indica la aritmƩtica, pero el texto y las fechas siguen sus propias reglas, y ambos sorprenden a los principiantes.
Las cadenas se comparan carĆ”cter por carĆ”cter utilizando su posición de ordenación, por lo que āAppleā < āBananaā devuelve True. Por defecto, la comparación distingue entre mayĆŗsculas y minĆŗsculas, lo que significa que āguru99ā = āGuru99ā devuelve Falso. Colocando Opción Comparar texto En la parte superior del módulo, todas las comparaciones de cadenas en ese módulo ignoran las mayĆŗsculas y minĆŗsculas. Para una sola prueba sin modificar el módulo, utilice StrComp con el argumento vbTextCompare.
Las fechas se almacenan como nĆŗmeros de serie contados desde el 30 de diciembre de 1899, por lo que se comparan directamente con los mismos seis operadores. Escritura Si Fecha de vencimiento < Fecha entonces Detecta correctamente los elementos vencidos, ya que Date devuelve la fecha actual del sistema como un nĆŗmero de serie. El Ćŗnico inconveniente es una fecha almacenada como texto: ā01/02/2026ā, leĆda de un archivo importado, es una cadena de texto, no una fecha, y se compara alfabĆ©ticamente. ConviĆ©rtala con CDate antes de probarla.
Conocer las reglas de cada tipo elimina la mayorĆa de las sorpresas, pero aun asĆ, algunos errores pueden pillar desprevenidos a los desarrolladores mĆ”s experimentados.
Errores comunes al comparar valores en VBA
Los cinco problemas que se describen a continuación explican la mayorĆa de las comparaciones que arrojan un resultado inesperado.
- Asignación confundida con comparación: Fuera de una condición, x = 5 Almacena 5 en x. Dentro de If, āālos mismos sĆmbolos comprueban la igualdad. VBA no tiene un operador == independiente, asĆ que lea el contexto con atención.
- Pruebas Double valores para igualdad exacta: La precisión almacenada significa que 0.1 + 0.2 = 0.3 devuelve Falso. Compare la diferencia redondeada en su lugar, por ejemplo. Si Abs(a ā b) < 0.000001 Entonces.
- Comparar cualquier cosa con Nulo: Nulo no es igual a nada, ni siquiera a otro Nulo. Prueba con IsNull en lugar de = Nulo.
- Comparar un texto con un número: Una celda que contiene el texto "100" no es igual al número 100. Realice la conversión con CLng o CDbl antes de la prueba.
- Leer .Text en lugar de .Value: La propiedad .Text devuelve el texto que se muestra, el cual se trunca segĆŗn el ancho de la columna y el formato. Siempre compare .Value.
Descargue el archivo Excel anterior. Code

