Como usar a instrução If Else no VBA? (com exemplos)

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

Agora, nosso código fornece pelo menos qualquer um dos resultados acima. Execute o código e veja o resultado.

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.

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

Etapa 2: declare a variável como um tipo de dados inteiro.

Dim k As Integer

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

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

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"

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

Este código fará um loop da à 8ª linha, testa os números e chega ao resultado com base no preço de custo.

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.

Artigos interessantes...