VBA IIF Como usar a função VBA IIF no Excel? (Modelo para download)

Índice:

Anonim

Função VBA IIF do Excel

O VBA IIF (também conhecido como Immediate If) é uma declaração que você pode ter visto frequentemente ao codificar no VBA e criar macros. É semelhante à função SE do Excel, onde você anota uma condição lógica e fornece duas saídas, se a condição for verdadeira e se for falsa. Se olhando para ele, você o considera uma função semelhante ao VBA IF, que usamos para avaliar testes e condições lógicos, você está enganado. Parece estar perto do VBA Se, e idealmente, pode-se dizer que eles realmente têm uma pequena diferença entre eles durante a execução. Neste artigo, obteremos mais informações sobre a instrução VBA IIF e como usá-la em nossa vida cotidiana de codificação para facilitar nossas tarefas.

A instrução VBA IIF funciona de maneira semelhante à instrução IF do Excel. Ele verifica a condição ou instrução lógica fornecida e fornece a saída associada à condição TRUE ou quando a condição é FALSE.

Sintaxe de IIF no Excel VBA

A sintaxe da função VBA IIF no Excel é a seguinte:

Onde,

  • Expressão: é a condição lógica que queremos avaliar sob a função IIF
  • TruePart: é o valor / saída que esperamos, quando a condição / expressão lógica é VERDADEIRA.
  • FalsePart: é o valor / saída que esperamos, quando a condição / expressão lógica é FALSE.

Como usar o Excel VBA IIF?

Agora vamos tentar com alguns exemplos no VBA IIF no Excel.

Você pode fazer o download deste modelo do VBA IIF Excel aqui - Modelo do VBA IIF Excel

Vamos dar um exemplo simples para ver como o IIF funciona no Microsoft VBA.

Exemplo # 1 - VBA IIF

Etapa 1: Abra um Editor do Visual Basic (VBE). Vá para a guia Inserir e clique em Módulo . Ele adicionará um novo módulo no VBE.

Etapa 2: defina um novo subprocedimento que possa conter sua macro neste módulo.

Código:

 Sub IIf_Ex1 () End Sub 

Etapa 3: defina duas novas variáveis ​​Var_1 como Long e Result com o tipo de dados como uma variante.

Código:

 Sub IIf_Ex1 () Dim var_1 Como resultado Dim longo como Boolean End Sub 

Etapa 4: atribua um valor numérico a Var_1 para que possamos usar essa variável para verificar a condição IIF lógica.

Código:

 Sub IIf_Ex1 () Dim var_1 As Long Dim Dim Result As Boolean var_1 = 5 End Sub 

Etapa 5: use a variável Result para armazenar a condição lógica IIF sob a qual vamos verificar se o valor atribuído a Var_1 é maior ou igual a 10.

Código:

 Sub IIf_Ex1 () Dim var_1 Como resultado de Dim como booleano var_1 = 5 Resultado = IIf (var_1> = 10, Verdadeiro, Falso) End Sub 

Etapa 6: Agora, use Debug.Print para imprimir o resultado da condição IIF no painel do visualizador de resultados imediatos.

Código:

 Sub IIf_Ex1 () Dim var_1 Como resultado de Dim como booleano var_1 = 5 Resultado = IIf (var_1> = 10, True, False) Depuração. 

Etapa 7: execute esse código pressionando F5 ou o botão Executar na parte superior do painel e veja a saída em Painel de saída imediata.

Exemplo # 2 - VBA IIF

Suponha que tenhamos dados na planilha da seguinte maneira:

Tudo o que queremos é uma saída na coluna B, de modo que, o número seja par ou ímpar.

Etapa 1: defina um novo subprocedimento no VBE.

Código:

 Sub IIF_Ex2 () End Sub 

Etapa 2: defina duas variáveis ​​"a" e "Números" como Long.

Código:

 Sub IIF_Ex2 () Dim a As Long Dim Number As Long End Sub 

Etapa 3: Inicie um loop For, no qual queremos fazer loop de todos os valores presentes na célula A2: A11. O loop começará de 2 a 11 (porque temos cabeçalhos na linha 1 para as colunas A e B).

Código:

 Sub IIF_Ex2 () Dim a As Long Dim Number As Long For a = 2 a 11 End Sub 

Etapa 4: use a Variável numérica definida anteriormente para armazenar todos os números da coluna A que variam no intervalo especificado usando o operador de atribuição (A2: A11). Use a seguinte linha de código para fazer isso.

Número = Folha1.Faixa ("A" e a)

Código:

 Sub IIF_Ex2 () Dim a As Long Dim Number As Long For a = 2 to 11 Number = Sheet1.Range ("A" & a) End Sub 

Essa linha de código permite que o VBA percorra todas as linhas da coluna A da “Plan1” no Excel, uma a uma no loop For.

Etapa 5: use IIF para verificar se cada valor da célula é par ou ímpar e armazene os resultados em cada célula da coluna B. A linha de código a seguir fará a tarefa por você.

Folha1.Faixa ("B" e a) .Valor = IIf (Número Mod 2 = 0, "Par", "Ímpar")

Código:

 Sub IIF_Ex2 () Dim a As Long Dim Number As Long For a = 2 To 11 Number = Sheet1.Range ("A" & a) Sheet1.Range ("B" & a) .Value = IIf (Number Mod 2 = 0, "Par", "Ímpar") End Sub 

Aqui, nesta linha, queremos que os resultados sejam armazenados em cada célula da coluna B da Plan1. Portanto, usamos "Sheet1.Range (" B "& i) .Value") no lado esquerdo do trecho de código. Usamos o IIF para verificar se o número é divisível por 2 usando Mod (operador Modulo sob VBA). Finalmente, queremos saber se o número é Par ou Ímpar na coluna B. Portanto, esses dois valores são mencionados na instrução IIF.

Etapa 6: Feche a instrução For loop with Next para que, após cada iteração, o sistema se mova para a próxima célula da planilha, até atingir a 11ª linha.

Código:

 Sub IIF_Ex2 () Dim a As Long Dim Number As Long For a = 2 To 11 Number = Sheet1.Range ("A" & a) Sheet1.Range ("B" & a) .Value = IIf (Number Mod 2 = 0, "Par", "Ímpar") Próximo Fim Sub 

Etapa 7: é isso. Execute esse código pressionando F5 ou o botão Executar, localizado no painel superior do VBE. Depois de executar essa macro, você verá uma saída abaixo na planilha1 (denominada "Exemplo_1") da pasta de trabalho do Excel.

Exemplo # 3 - VBA IIF

Veremos uma declaração IIF aninhada agora:

É da mesma maneira que aninhamos várias condições de IF em um único loop.

Suponha os mesmos dados que usamos no caso anterior. Tudo o que queríamos é escrever um código que nos permita distinguir entre números da seguinte maneira:

  • Se o número estiver entre 1 e 3 (3 inclusos), ele deverá mencionar “Pequeno” na coluna B.
  • Se o número estiver entre 4 e 6 (6 incluído), ele deverá mencionar "Médio" na coluna B.
  • Se o número estiver entre 7 e 10 (10 incluído), ele deverá mencionar "Grande" na coluna B.

Vamos escrever um código para este tipo de IIF:

Etapa 1: defina um novo subprocedimento no seu VBE que possa conter sua macro.

Código:

 Sub NestedIf () End Sub 

Siga as etapas 2 a 4, da mesma forma que no exemplo acima (exemplo 2 deste artigo). Inclui a definição de variáveis ​​e a adição de todos os números presentes na coluna A em um loop For.

Etapa 5: use o seguinte trecho de código para obter a saída desejada.

Código:

 Sub NestedIf () Número não ofuscante do tamanho a = 2 a 11 Número = Planilha2.Range ("A" e a) Planilha2.Range ("B" e a) .Valor = IIf (Número = 7, "Grande", " Médio ")) End Sub 

Etapa 6: Feche o loop For com a instrução Next e execute esse código usando o botão F5 ou Run, presente na faixa de opções superior em VBE. Depois de executar o código, você verá a saída como abaixo:

Aqui, neste código, o IIF aninhado está sendo usado. Sob a primeira IIF, recebemos o que deve ser impresso na coluna B quando os números estão entre 1 e 3. Na segunda IIF, mencionamos o que deve ser impresso na coluna B quando os números são maiores ou iguais a 7 e sob a mesmo IIF, fornecemos o que deve ser impresso na coluna B quando os números não estiverem entre 1 e 3 e 7 e 10.

Dessa forma, podemos adicionar vários IIFs sob o mesmo código e aninhá-los. É isso neste artigo. Vamos encerrar a coisa com algumas coisas a serem lembradas.

Coisas para lembrar

  • O IIF sempre avalia as duas partes (VERDADEIRA e FALSA) para uma condição específica. No entanto, apenas imprime a parte FALSE quando nada é VERDADEIRO.
  • A escrita é abreviada que a das declarações If-Else padrão.
  • Não é bem conhecido, portanto, alguns usuários podem não entender seu código se você tiver usado o IIF em vez do If-Else convencional.

Artigos recomendados

Este é um guia para o VBA IIF. Aqui discutimos como usar o Excel VBA IIF, juntamente com exemplos práticos e modelo de excel para download. Você também pode consultar nossos outros artigos sugeridos -

  1. Trabalhando com o VBA Active Cell
  2. Excluindo uma linha no VBA
  3. Como usar o Excel VBA Transpose?
  4. Como corrigir o erro 1004 usando o VBA