La función WorksheetFunction.Or nos permitirá analizar la veracidad o falsedad de una cantidad determinada de argumentos, estos argumentos son valores lógicos que pueden ser "VERDADERO" o "FALSO", para emitir finalmente un resultado que también puede ser "VERDADERO" o "FALSO". Las condiciones para cada resultado son las siguientes:
- La función devolverá el valor "VERDADERO" si al menos uno de los argumentos es VERDADERO.
- La función devolverá el valor "FALSO" si todos los argumentos son FALSOS.
La sintaxis, entonces, de esta función será: O(valor_lógico1, valor_lógico2, valor_lógico3) , se pueden introducir de 1 a 255 valores lógicos o condiciones.
Cabe resaltar, que como bien se sabe, las funciones del tipo WorksheetFunction no son propias de VBA, será necesario emplear la forma: application.WorksheetFunction para poder hacerlas compatibles con este lenguaje.
A continuación se presenta un ejemplo de la función WorksheetFunction.Or
Se colocó en la celda A1 el valor de 5 y en la celda A2 el valor de 20.
Se definieron las variables a utilizar y aquellas condiciones (argumentos de la función) fueron declaradas como Boolean, para que de acuerdo a cierta condición nos devuelvan un valor lógico el cual se usará posteriormente al momento de aplicar la función.
(Para mayor visualización de la imagen, hacer click en la misma)
Una vez llevado a cabo el código en VBA, la condición1 y condición2 obtuvieron el valor de "FALSO" mientras que la condición3 obtuvo el valor de "VERDADERO" por lo que el resultado final, luego de aplicar la función sobre estas 3 condiciones, sería "VERDADERO" como se muestra a continuación:
Autor: José Luis Morales
01/07/2015 a las 1:40 pm
Estoy interesado en aplicar esto para lo que sería simulaciones de resultados.
01/09/2018 a las 5:25 pm
Esta declaración de variables es incorrecta en VBA,… en función de lo que se pretende.
Dim valor1, valor2 As Integer
Dim condicion1, condicion2, condicion3 As Boolean
No se están declarando dos variables de tipo “Integer” y no se están declarando tres variables de tipo “Boolean” como se pretende. En realidad solo se está declarando a Valor2 de tipo “Integer” y a condicio3 de tipo Boolean, todas las otras son de tipo Variant, es claro que no es la que se pretende….ok
Forma abreviada Correcta #1
Dim valor1 As Integer, valor2 As Integer
Dim condicion1 As Boolean, condicion2 As Boolean, condicion3 As Boolean
Forma abreviada correcta #2
Dim valor1%, valor2%
Podemos utilizar caracteres para la declaración de variables, pero para las de tipo Boolean no es posible….ok