Operadores lógicos VBA - OR, AND, XOR, NOT, IS e LIKE

O VBA permite que você use os operadores lógicos E, Ou, Não, Xor para comparar valores. Os operadores são considerados “booleanos”, o que significa que retornam True ou False como resultado.

Se você quiser aprender como comparar strings, clique aqui: VBA Compare Strings - StrComp

Se você quiser aprender como usar operadores de comparação, clique aqui: VBA Comparison Operators - Not Equal to & More

Usando o operador lógico E

o E operador lógico compara duas ou mais condições. Se todas as condições forem verdadeiras, o operador retornará True. Se pelo menos uma das condições não for verdadeira, o operador retornará False. Aqui está um exemplo:

123456789101112 Dim intA As IntegerDim intB As IntegerDim blnResult As BooleanintA = 5intB = 5Se intA = 5 E intB = 5 EntãoblnResult = TrueOutroblnResult = FalseFim se

Neste exemplo, queremos verificar se ambos intA e intB são iguais a 5. Se isso for verdade, o valor de Boolean blnResult será True, caso contrário, será False.

Primeiro, definimos valores de intA e intB a 5:

12 intA = 5intB = 5

Depois disso, usamos o E operador na instrução If para verificar se os valores são iguais a 5:

12345 Se intA = 5 E intB = 5 EntãoblnResult = TrueOutroblnResult = FalseFim se

Como ambas as variáveis ​​são iguais a 5, o blnResult retorna True:

Imagem 1. Usando o operador lógico And no VBA

Usando o operador lógico ou

o Ou operador lógico compara duas ou mais condições. Se pelo menos uma das condições for verdadeira, ele retornará True. Se nenhuma das condições for verdadeira, o operador retornará False. Aqui está o código do exemplo:

123456789101112 Dim intA As IntegerDim intB As IntegerDim blnResult As BooleanintA = 5intB = 10Se intA = 5 Ou intB = 5 EntãoblnResult = TrueOutroblnResult = FalseFim se

Neste exemplo, queremos verificar se ambos intA é igual a 5. ou intB é igual a 10. Se qualquer uma dessas condições for verdadeira, o valor de Boolean blnResult será True, caso contrário, será False.

Primeiro, definimos o valor de intA a 5 e intB a 10:

12 intA = 5intB = 10

Depois disso, usamos o Ou operador na instrução If para verificar se algum dos valores é igual a 5:

12345 Se intA = 5 Ou intB = 5 EntãoblnResult = TrueOutroblnResult = FalseFim se

Como intA o valor é 5, o blnResult retorna True:

Imagem 2. Usando o operador lógico Or no VBA

Usando o operador não lógico

o Não operador lógico verifica uma ou mais condições. Se as condições forem verdadeiras, o operador retorna False. Caso contrário, retorna True. Aqui está o código do exemplo:

12345678910 Dim intA As IntegerDim blnResult As BooleanintA = 5Se não (intA = 6), entãoblnResult = TrueOutroblnResult = FalseFim se

Neste exemplo, queremos verificar se o valor de intA não é igual a 6. Se intA é diferente de 6, o valor de Boolean blnResult será True, caso contrário, será False.

Primeiro, definimos o valor de intA a 5:

1 intA = 5

Depois disso, usamos o operador Not na instrução If para verificar se o valor de intA é diferente de 6:

12345 Se não (intA = 6), entãoblnResult = TrueOutroblnResult = FalseFim se

Como intA o valor é 5, o blnResult retorna True:

Imagem 3. Usando o operador Não lógico no VBA

Usando o operador lógico Xor

o Xor operador lógico compara duas ou mais condições. Se exatamente uma das condições for verdadeira, ele retornará True. Se nenhuma das condições for verdadeira ou mais de uma for verdadeira, ele retornará False. Aqui está o código do exemplo:

123456789101112 Dim intA As IntegerDim intB As IntegerDim blnResult As BooleanintA = 5intB = 10Se intA = 5 Xor intB = 5 EntãoblnResult = TrueOutroblnResult = FalseFim se

Neste exemplo, queremos verificar se exatamente um dos valores (intA ou IntB) é igual a 5. Se apenas uma condição for verdadeira, o valor de Boolean blnResult será True, caso contrário, será False.

Primeiro, definimos o valor de intA a 5 e intB a 10:

12 intA = 5intB = 10

Depois disso, usamos o Ou operador na instrução If para verificar se algum dos valores é igual a 5:

12345 Se intA = 5 Xor intB = 5 EntãoblnResult = TrueOutroblnResult = FalseFim se

Como intA o valor é 5 e intB é 10, o blnResult retorna True:

Imagem 4. Usando o operador lógico Xor em VBA

É Operador

O operador Is testa se duas variáveis ​​de objeto armazenam o mesmo objeto.

Vejamos um exemplo. Aqui, atribuiremos duas planilhas aos objetos de planilha rng1 e rng2, testando se os dois objetos de planilha armazenam a mesma planilha:

12345678910111213 Sub CompareObjects ()Dim ws1 como planilha, ws2 como planilhaDefinir ws1 = Folhas ("Folha1")Definir ws2 = Folhas ("Folha2")Se ws1 for ws2, entãoMsgBox "Mesmo WS"OutroMsgBox "Diferentes WSs"Fim seEnd Sub

É claro que os objetos da planilha não são os mesmos, então “Different WSs” é retornado.

Like Operator

O Operador Like pode comparar duas strings para correspondências inexatas. Este exemplo testará se uma string começa com “Sr.”

1234567891011121314 Sub LikeDemo ()Dim strNome como stringDim blnResult As BooleanstrName = "Sr. Michael James"Se strNome Like "Mr *" EntãoblnResult = TrueOutroblnResult = FalseFim seEnd Sub

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave