Operadores lógicos de VBA: OR, AND, XOR, NOT, IS y LIKE

VBA le permite usar los operadores lógicos Y, O, No, Xor para comparar valores. Los operadores se consideran "booleanos", lo que significa que devuelven Verdadero o Falso como resultado.

Si desea aprender a comparar cadenas, haga clic aquí: VBA Compare Strings - StrComp

Si desea aprender a usar los operadores de comparación, haga clic aquí: Operadores de comparación de VBA: no es igual a y más

Uso del operador lógico And

los Y El operador lógico compara dos o más condiciones. Si todas las condiciones son verdaderas, el operador devolverá True. Si al menos una de las condiciones no es verdadera, el operador devolverá False. Aquí hay un ejemplo:

123456789101112 Dim intA como enteroDim intB como enteroDim blnResult como booleanointA = 5intB = 5Si intA = 5 E intB = 5 EntoncesblnResult = VerdaderoDemásblnResult = FalsoTerminara si

En este ejemplo, queremos comprobar si ambos intA y intB son iguales a 5. Si esto es cierto, el valor de Boolean blnResult será Verdadero, de lo contrario, será Falso.

Primero, establecemos valores de intA y intB al 5:

12 intA = 5intB = 5

Después de eso, usamos el Y operador en la instrucción If para comprobar si los valores son iguales a 5:

12345 Si intA = 5 e intB = 5 entoncesblnResult = VerdaderoDemásblnResult = FalsoTerminara si

Como ambas variables son iguales a 5, la blnResult devuelve True:

Imagen 1. Usando el operador lógico And en VBA

Uso del operador lógico Or

los O El operador lógico compara dos o más condiciones. Si al menos una de las condiciones es verdadera, devolverá True. Si ninguna de las condiciones es verdadera, el operador devolverá False. Aquí está el código del ejemplo:

123456789101112 Dim intA como enteroDim intB como enteroDim blnResult como booleanointA = 5intB = 10Si intA = 5 O intB = 5 EntoncesblnResult = VerdaderoDemásblnResult = FalsoTerminara si

En este ejemplo, queremos comprobar si ambos intA es igual a 5. o intB es igual a 10. Si alguna de estas condiciones es verdadera, el valor de Boolean blnResult será Verdadero, de lo contrario, será Falso.

Primero, establecemos el valor de intA a 5 y intB a 10:

12 intA = 5intB = 10

Después de eso, usamos el O operador en la instrucción If para comprobar si alguno de los valores es igual a 5:

12345 Si intA = 5 O intB = 5 EntoncesblnResult = VerdaderoDemásblnResult = FalsoTerminara si

Como intA el valor es 5, el blnResult devuelve True:

Imagen 2. Usando el operador lógico Or en VBA

Uso del operador no lógico

los No El operador lógico comprueba una o más condiciones. Si las condiciones son verdaderas, el operador devuelve False. De lo contrario, devuelve True. Aquí está el código del ejemplo:

12345678910 Dim intA como enteroDim blnResult como booleanointA = 5Si no (intA = 6) EntoncesblnResult = VerdaderoDemásblnResult = FalsoTerminara si

En este ejemplo, queremos comprobar si el valor de intA no es igual a 6. Si intA es diferente de 6, el valor de Boolean blnResult será Verdadero, de lo contrario, será Falso.

Primero, establecemos el valor de intA al 5:

1 intA = 5

Después de eso, usamos el operador Not en la instrucción If para verificar si el valor de intA es diferente de 6:

12345 Si no (intA = 6) EntoncesblnResult = VerdaderoDemásblnResult = FalsoTerminara si

Como intA el valor es 5, el blnResult devuelve True:

Imagen 3. Usando el operador No lógico en VBA

Uso del operador lógico Xor

los Xor El operador lógico compara dos o más condiciones. Si exactamente una de las condiciones es verdadera, devolverá True. Si ninguna de las condiciones es verdadera o más de una, devolverá False. Aquí está el código del ejemplo:

123456789101112 Dim intA como enteroDim intB como enteroDim blnResult como booleanointA = 5intB = 10Si intA = 5 Xor intB = 5 EntoncesblnResult = VerdaderoDemásblnResult = FalsoTerminara si

En este ejemplo, queremos verificar si exactamente uno de los valores (intA o IntB) es igual a 5. Si solo una condición es verdadera, el valor de Boolean blnResult será Verdadero, de lo contrario, será Falso.

Primero, establecemos el valor de intA a 5 y intB a 10:

12 intA = 5intB = 10

Después de eso, usamos el O operador en la instrucción If para comprobar si alguno de los valores es igual a 5:

12345 Si intA = 5 Xor intB = 5 EntoncesblnResult = VerdaderoDemásblnResult = FalsoTerminara si

Como intA el valor es 5 y intB es 10, el blnResult devuelve True:

Imagen 4. Usando el operador lógico Xor en VBA

Es operador

El operador Is prueba si dos variables de objeto almacenan el mismo objeto.

Veamos un ejemplo. Aquí asignaremos dos hojas de trabajo a los objetos de la hoja de trabajo rng1 y rng2, probando si los dos objetos de la hoja de trabajo almacenan la misma hoja de trabajo:

12345678910111213 Sub CompareObjects ()Dim ws1 como hoja de trabajo, ws2 como hoja de trabajoEstablecer ws1 = Hojas ("Hoja1")Establecer ws2 = Hojas ("Hoja2")Si ws1 es ws2 entoncesMsgBox "Mismo WS"DemásMsgBox "Diferentes WS"Terminara siEnd Sub

Por supuesto, los objetos de la hoja de trabajo no son los mismos, por lo que se devuelve "WS diferente".

Como operador

El operador Like puede comparar dos cadenas de coincidencias inexactas. Este ejemplo probará si una cadena comienza con "Sr."

1234567891011121314 Sub LikeDemo ()Dim strName como cadenaDim blnResult como booleanostrName = "Sr. Michael James"Si strName como "Mr *", entoncesblnResult = VerdaderoDemásblnResult = FalsoTerminara siEnd Sub

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave