VBA IIF - Como usar a função VBA IIF no Excel? (com exemplos)

Índice

Excel VBA IIF

Se você é um usuário regular de macros VBA, deve ter encontrado a função chamada “IIF” ou pode ter visto essa função na Internet. À primeira vista, você deve ter pensado que é uma condição IF como nossa instrução IF regular no Excel. Mas esta não é a mesma instrução IF que usamos para avaliar testes lógicos e chegar aos resultados com base nos critérios que fornecemos. Neste artigo, mostraremos a condição “VBA IIF” no VBA.

O que o IIF Condition faz no VBA?

Isso é muito semelhante à nossa condição IF, mas ligeiramente diferente na natureza. A condição “VBA IIF” testa a expressão fornecida ou teste lógico e retorna VERDADEIRO ou FALSO como resultado.

Sintaxe VBA IIF

Dê uma olhada na sintaxe da função IIF.

  • Expressão: Isso nada mais é do que o teste lógico que gostaríamos de realizar.
  • Parte Ture: Se o teste lógico é VERDADEIRO, então qual deveria ser a parte VERDADEIRA.
  • Parte falsa: Se o teste lógico for FALSO, qual deve ser o resultado da parte FALSA.

Podemos inserir nossos próprios resultados com peças TRUE & FALSE. Embora os argumentos sejam semelhantes aos da condição IF, isso será um pouco diferente. Veremos isso nos exemplos da função Excel VBA IIF.

Uma das principais diferenças entre o “IF” regular e este “IIF” é que podemos reduzir o código a uma única linha com I onde com a condição IF, e leva no mínimo 5 linhas para chegar ao mesmo resultado.

Exemplo de função VBA IIF

Abaixo estão os exemplos da função VBA IIF no Excel.

Exemplo # 1 - VBA IIF

Ok, veremos um exemplo simples de função IIF. Agora vamos testar se um número é maior ou menor que outro número. Siga as etapas abaixo para escrever o código VBA.

Etapa 1: inicie a macro.

Etapa 2: Defina a variável como String em VBA.

Código:

Sub IIF_Example () Dim FinalResult As String End Sub

Etapa 3: Defina mais duas variáveis ​​como Longas em VBA.

Código:

Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long End Sub

Passo 4: Agora, para a variável “Número1” atribua o valor 105 e para a variável “Número2” atribua o valor 100.

Código:

Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 End Sub

Etapa 5: Agora, para a primeira variável definida, “FinalResult”, atribuiremos o resultado da função IIF. Portanto, abra o IIF para a variável.

Etapa 6: forneça a expressão como Número1> Número2.

Passo 7: Agora, se a expressão for TRUE, qual deve ser o resultado. Atribuirei o resultado como “Número 1 é maior que Número 2”.

Passo 8: Agora, se a expressão for FALSE, qual deve ser o resultado. Atribuirei o resultado como “Número 1 é menor que Número 2”.

Agora, o valor da variável será um dos abaixo.

Se verdadeiro: “Número 1 é maior que Número 2.”

Se for falso: “Número 1 é menor que Número 2.”

Etapa 9: Vamos mostrar o resultado em uma caixa de mensagem em VBA.

Código:

Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 FinalResult = IIf (Number1> Number2, "Number 1 is Greater than Number 2", "Number 1 is less than Number 2") MsgBox FinalResult End Sub

Agora vamos executar o código e ver o resultado.

Como o valor do Número 1 é 105, que é maior do que o valor do Número 2 de 100, obtemos o resultado como “Número 1 é maior que o Número 2”. Como a Expressão é TRUE, a condição IIF retornou esse resultado.

Exemplo # 2 - IF vs. IIF

You must be wondering what the difference between IF & IIF is. Yes, there is a difference in coding. For example, look at the IF condition code.

Code:

Sub IIF_Example() Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 If Number1> Number2 Then MsgBox "Number 1 is Greater than Number 2" Else MsgBox "Number 1 is Less than Number 2" End If End Sub

Using IF first, we have applied a logical test.

If Number1> Number2 Then

Then if the logical test is true, we have applied the result.

MsgBox "Number 1 is Greater than Number 2"

Then if the logical test is false, we have applied the different results.

MsgBox "Number 1 is Less than Number 2"

Ambas as funções retornam o mesmo resultado, mas com IIF, podemos codificar em uma única linha apenas, onde a instrução IF requer várias linhas.

Exemplo # 3 - Condição IIF aninhada VBA

Da mesma forma que usamos IF aninhado para testar várias condições de maneira semelhante, também podemos usar vários IIF. Dê uma olhada no código abaixo.

Código:

Sub IIF_Example2 () Dim FinalResult As String Dim Marks As Long Marks = 98 FinalResult = IIf (Marks> 90, "Dist", IIf (Marks> 80, "First", IIf (Marks> 70, "Second", IIf (Marks > 60, "Third", "Fail")))) MsgBox FinalResult End Sub

A condição IIF acima testa cinco testes lógicos e retorna o resultado de acordo.

Artigos interessantes...