Declaração Excel VBA IF Else
Não há instrução IF Else na planilha e ela só pode ser usada no código VBA, enquanto trabalhamos no VBA podemos fornecer uma condição que é a instrução da condição If e se for cumprida um determinado conjunto de instruções, então ela é executada e se a condição falha na instrução e então a instrução é executada.
O VBA não é diferente quando se trata de testes lógicos. Funciona da mesma maneira que em planilhas regulares. De todas as funções lógicas, a função “IF” é usada principalmente no lote. Usando IF, podemos conduzir um teste lógico e chegar às decisões se o teste lógico for satisfeito e também chegar a decisões alternativas se o teste lógico não for satisfeito.
Abaixo está a sintaxe da condição IF Else.
SE Então, se o teste lógico for VERDADEIRO Ou se o teste lógico for FALSO, finalizar IF
O que é a instrução VBA IF Then Else?
Uma vez que o teste lógico fornecido é FALSE, precisamos de alguma tarefa alternativa para executar como parte do código. Portanto, “IF ELSE” significa que se o teste lógico for FALSE, o que mais precisa ser feito.
Para entender melhor o exemplo abaixo, fornecemos o resultado como “10 é maior” apenas se o teste lógico for VERDADEIRO. Ainda assim, no resultado lógico FALSO, podemos fornecer o resultado alternativo como “10 é menor”.
Assim, uma vez que os testes lógicos são fornecidos e o código da peça VERDADEIRO escrito na próxima linha, insira a palavra “ELSE”.
ELSE significa que se o teste lógico não for TRUE, precisamos do resultado como “10 é menor”.
Código:
Sub IF_Else_Example1 () If 10> 11 Then MsgBox "10 é maior" Else MsgBox "10 é menor" End If End Sub
![](https://cdn.know-base.net/5966671/how_to_use_if_else_statement_in_vba_with_examples_2.png.webp)
Agora, nosso código fornece pelo menos qualquer um dos resultados acima. Execute o código e veja o resultado.
![](https://cdn.know-base.net/5966671/how_to_use_if_else_statement_in_vba_with_examples_3.png.webp)
Já que fornecemos o resultado alternativo se o teste lógico for FALSO, ele exibiu o resultado alternativo como “10 é menor” porque 10 é menor que o outro número 11.
Exemplo
Por exemplo, observe os dados abaixo.
![](https://cdn.know-base.net/5966671/how_to_use_if_else_statement_in_vba_with_examples_4.png.webp)
Com esses dados, precisamos chegar ao status com base no “Custo” de cada produto. Para chegar ao status abaixo estão os critérios.
Se o preço de custo for> 50, o status deve ser " Caro " ou " Não caro ".
Aqui, precisamos testar o preço de custo, ou seja, teste lógico se o preço de custo é> 50 ou não. Se o teste lógico for VERDADEIRO, ou seja, o preço de custo é maior que 50, precisamos do status como “Caro”, e se o teste lógico for FALSO, ou seja, o preço de custo é menor que 50, precisamos do resultado alternativo como "Não é caro."
Ok, vamos escrever o código agora. Antes disso, copie e cole a tabela acima em uma planilha do Excel.
Etapa 1: iniciar o subprocedimento.
Sub IF_ELSE_Example2 () End Sub
![](https://cdn.know-base.net/5966671/how_to_use_if_else_statement_in_vba_with_examples_5.png.webp)
Etapa 2: declare a variável como um tipo de dados inteiro.
Dim k As Integer
![](https://cdn.know-base.net/5966671/how_to_use_if_else_statement_in_vba_with_examples_6.png.webp)
Etapa 3: Como precisamos testar mais de um valor de célula, precisamos empregar FOR VBA LOOP para percorrer as células e aplicar a lógica a todas as células.
Precisamos aplicar testes lógicos da linha 2 a 8 ª linha, assim que começar para o laço 2-8.
Código:
Para k = 2 a 8 Próximo k
![](https://cdn.know-base.net/5966671/how_to_use_if_else_statement_in_vba_with_examples_7.png.webp)
Etapa 4: dentro deste loop, precisamos executar o teste lógico. Portanto, abra a instrução IF e selecione a primeira célula usando a propriedade CELLS.
Código:
Se Células (k, 2) .Valor> 50 Então
![](https://cdn.know-base.net/5966671/how_to_use_if_else_statement_in_vba_with_examples_8.png.webp)
Aqui, Células (k, 2) significa linha (valor de k) e coluna 2.
Etapa 5: se o valor desta célula for> 50, precisamos do resultado como “Caro” na próxima célula da coluna. Então, o código será -
Código:
Células (k, 3) .Valor = "caro"
![](https://cdn.know-base.net/5966671/how_to_use_if_else_statement_in_vba_with_examples_9.png.webp)
Etapa 6: se o teste não for VERDADEIRO, precisamos dos resultados da instrução ELSE, ou seja, “Não é caro”.
Código:
Sub IF_ELSE_Example2 () Dim k As Integer For k = 2 To 8 If Cells (k, 2) .Value> 50 Then Cells (k, 3) .Value = "Expensive" Else Cells (k, 3) .Value = "Not Caro "End If Next k End Sub
![](https://cdn.know-base.net/5966671/how_to_use_if_else_statement_in_vba_with_examples_10.png.webp)
Este código fará um loop da 2ª à 8ª linha, testa os números e chega ao resultado com base no preço de custo.
![](https://cdn.know-base.net/5966671/how_to_use_if_else_statement_in_vba_with_examples.gif)
Assim, podemos usar If-Else para chegar a resultados alternativos.
Coisas para lembrar
- Outra instrução é para um teste lógico FALSO.
- Se você deseja aplicar mais de dois testes lógicos no Excel, precisamos usar a instrução ELSE IF.
- No caso de execução de tarefas para mais de uma célula, precisamos usar loops.
- A instrução If Else pode testar apenas um teste lógico.