Los tres operadores lógicos más utilizados en Excel VBA son: And, Or y Not. Como siempre, usaremos ejemplos sencillos para aclarar las cosas.

Operador lógico y

Coloque un botón de comando en su hoja de trabajo y agregue las siguientes líneas de código:

Dim score1 As Integer, score2 As Integer, result As String

score1 = Range("A1").Value
score2 = Range("B1").Value

If score1 >= 60 And score2 > 1 Then
    result = "pass"
Else
    result = "fail"
End If

Range("C1").Value = result

Explicación: si el puntaje1 es mayor o igual a 60 y el puntaje2 es mayor que 1, Excel VBA devuelve aprobado; de lo contrario, los resultados de Excel VBA fallan.

Resultado al hacer clic en el botón de comando en la hoja:

Operador lógico de Excel VBA y

Conclusión: las devoluciones de Excel VBA fallan porque la puntuación2 no es mayor que 1.

Operador lógico o

Coloque un botón de comando en su hoja de trabajo y agregue las siguientes líneas de código:

Dim score1 As Integer, score2 As Integer, result As String

score1 = Range("A1").Value
score2 = Range("B1").Value

If score1 >= 60 Or score2 > 1 Then
    result = "pass"
Else
    result = "fail"
End If

Range("C1").Value = result

Explicación: si el puntaje1 es mayor o igual a 60 o el puntaje2 es mayor que 1, Excel VBA devuelve aprobado, de lo contrario, los resultados de Excel VBA fallan.

Resultado al hacer clic en el botón de comando en la hoja:

Operador lógico de Excel VBA o

Conclusión: Excel VBA devuelve aprobado porque score1 es mayor o igual a 60.

Operador lógico no

Coloque un botón de comando en su hoja de trabajo y agregue las siguientes líneas de código:

Dim score1 As Integer, score2 As Integer, result As String

score1 = Range("A1").Value
score2 = Range("B1").Value

If score1 >= 60 And Not score2 = 1 Then
    result = "pass"
Else
    result = "fail"
End If

Range("C1").Value = result

Explicación: si score1 es mayor o igual a 60 y score2 no es igual a 1, Excel VBA devuelve aprobado, de lo contrario, Excel VBA devuelve fallos.

Resultado al hacer clic en el botón de comando en la hoja:

Operador lógico de Excel VBA no

Conclusión: los retornos de Excel VBA fallan porque score2 es igual a 1.

2/9 ¡Completado! Obtenga más información sobre las declaraciones if then>
Siguiente capítulo: bucle