Como usar o If-Then no Excel 2016 VBA

If-Then é a estrutura de controle mais importante do VBA. Você provavelmente usará esse comando diariamente. Use a estrutura If-Then quando quiser executar uma ou mais instruções condicionalmente. A cláusula Else opcional, se incluída, permite que você execute uma ou mais instruções se a condição que você está testando não for verdadeira. Aqui está um procedimento simples de CheckUser, recodificado para usar a estrutura If-Then-Else:

Sub CheckUser2 ()
  UserName = InputBox (“Digite seu nome:“)
  Se UserName = “Satya Nadella”, então
    MsgBox (“Bem-vindo Satya…”)
'… [Mais código aqui]…
  Outro
    MsgBox “Desculpe. Apenas Satya Nadella pode executar isso. ”
  Fim se
End Sub

Exemplos de If-Then

A rotina a seguir demonstra a estrutura If-Then sem a cláusula Else opcional:

Sub GreetMe ()
  Se o tempo for <0,5, então MsgBox “Bom dia”
End Sub

O procedimento GreetMe usa a função Time do VBA para obter a hora do sistema. Se a hora atual for inferior a 0,5, a rotina exibirá uma saudação amigável. Se o tempo for maior ou igual a 0,5, a rotina termina e nada acontece.

Para exibir uma saudação diferente se o tempo for maior ou igual a 0,5, você pode adicionar outra instrução If-Then após a primeira:

Sub GreetMe2 ()
  Se o tempo for <0,5, então MsgBox “Bom dia”
  Se Tempo> = 0,5 Então MsgBox “Boa tarde”
End Sub

Observe que> = (maior ou igual a) é usado para a segunda instrução If-Then. Isso garante que todo o dia seja coberto. Se> (maior que) tivesse sido usado, nenhuma mensagem apareceria se este procedimento fosse executado precisamente às 12h00. Isso é bastante improvável, mas com um programa importante como este, você não quer se arriscar.

Um exemplo If-Then-Else

Outra abordagem para o problema anterior usa a cláusula Else. Aqui está a mesma rotina recodificada para usar a estrutura If-Then-Else:

Sub GreetMe3 ()
  Se Tempo <0,5 Então MsgBox “Bom dia” Else _
    MsgBox “Boa tarde”
End Sub

Observe que o caractere de continuação de linha (sublinhado) é usado no exemplo anterior. A instrução If-Then-Else é, na verdade, uma única instrução. O VBA fornece uma maneira ligeiramente diferente de codificar construções If-Then-Else que usam uma instrução End If. Portanto, o procedimento GreetMe pode ser reescrito como

Sub GreetMe4 ()
  Se Tempo <0,5 Então
    MsgBox “Bom dia”
  Outro
    MsgBox “Boa tarde”
  Fim se
End Sub

Na verdade, você pode inserir qualquer número de instruções na parte If e qualquer número de instruções na parte Else. Essa sintaxe é mais fácil de ler e torna as instruções mais curtas.

E se você precisar expandir a rotina do GreetMe para lidar com três condições: manhã, tarde e noite? Você tem duas opções: Use três instruções If-Then ou uma estrutura aninhada If-Then-Else. Aninhar significa colocar uma estrutura If-Then-Else dentro de outra estrutura If-Then-Else. A primeira abordagem, usando três instruções If-Then, é mais simples:

Sub GreetMe5 ()
 Dim Msg As String
 Se Tempo <0,5 Então Msg = “Manhã”
 Se Tempo> = 0,5 E Tempo <0,75 Então Msg = “Tarde”
 Se Tempo> = 0,75 Então Msg = “Noite”
 MsgBox “Good“ & Msg
End Sub

Uma nova reviravolta foi adicionada com o uso de uma variável. A variável Msg obtém um valor de texto diferente, dependendo da hora do dia. A instrução MsgBox exibe a saudação: Bom dia, Boa tarde ou Boa noite.

A rotina a seguir executa a mesma ação, mas usa uma estrutura If-Then-End If:

Sub GreetMe6 ()
  Dim Msg As String
  Se Tempo <0,5 Então
    Msg = “Manhã”
  Fim se
  Se o tempo> = 0,5 e o tempo <0,75, então
    Msg = “Tarde”
  Fim se
  Se Tempo> = 0,75 Então
    Msg = “Noite”
  Fim se
  MsgBox “Good“ & Msg
End Sub

Usando ElseIf

Nos exemplos anteriores, todas as instruções da rotina são executadas. Uma estrutura um pouco mais eficiente sairia da rotina assim que uma condição fosse considerada verdadeira. De manhã, por exemplo, o procedimento deve exibir a mensagem Bom dia e depois sair - sem avaliar as demais condições supérfluas.

Com uma rotina minúscula como essa, você não precisa se preocupar com a velocidade de execução. Mas para aplicativos maiores nos quais a velocidade é crítica, você deve conhecer outra sintaxe para a estrutura If-Then.

Veja como você pode reescrever a rotina GreetMe usando esta sintaxe:

Sub GreetMe7 ()
 Dim Msg As String
 Se Tempo <0,5 Então
   Msg = “Manhã”
 ElseIf Time> = 0,5 e tempo <0,75 então
   Msg = “Tarde”
 Outro
   Msg = “Noite”
 Fim se
 MsgBox “Good“ & Msg
End Sub

Quando uma condição é verdadeira, o VBA executa as instruções condicionais e a estrutura If termina. Em outras palavras, este procedimento é um pouco mais eficiente do que os exemplos anteriores. A desvantagem é que o código é mais difícil de entender.

Outro exemplo If-Then

Aqui está outro exemplo que usa a forma simples da estrutura If-Then. Este procedimento solicita ao usuário uma quantidade e, em seguida, exibe o desconto apropriado, com base na quantidade que o usuário insere:

Sub ShowDiscount ()
  Quantidade reduzida enquanto
  Dim desconto como duplo
  Quantidade = InputBox (“Insira a quantidade:”)
  Se Quantidade> 0 Então Desconto = 0,1
  Se Quantidade> = 25 Então Desconto = 0,15
  Se Quantidade> = 50 Então Desconto = 0,2
  Se Quantidade> = 75 Então Desconto = 0,25
  MsgBox “Desconto:“ & Desconto
End Sub

Observe que cada instrução If-Then nesta rotina é executada e o valor de Desconto pode mudar à medida que as instruções são executadas. No entanto, a rotina, em última análise, exibe o valor correto para Desconto porque as instruções If-Then estão em ordem crescente de valores de Desconto.

O procedimento a seguir executa as mesmas tarefas usando a sintaxe ElseIf alternativa. Nesse caso, a rotina termina imediatamente após a execução das instruções para uma condição verdadeira:

Sub ShowDiscount2 ()
 Quantidade reduzida enquanto
 Dim desconto como duplo
 Quantidade = InputBox (“Insira a quantidade:“)
 Se a quantidade> 0 e a quantidade <25, então
  Desconto = 0,1
 Quantidade ElseIf> = 25 E Quantidade <50 Então
  Desconto = 0,15
 Quantidade ElseIf> = 50 e quantidade <75 então
  Desconto = 0,2
 Quantidade ElseIf> = 75 Então
  Desconto = 0,25
 Fim se
 MsgBox “Desconto:“ & Desconto
End Sub

Essas múltiplas estruturas If-Then são bastante complicadas. Você pode querer usar a estrutura If-Then apenas para decisões binárias simples.


Smartsheet 9.1.1

Smartsheet 9.1.1

Smartsheet é uma plataforma de trabalho dinâmica que permite gerenciar projetos, criar fluxos de trabalho e colaborar com sua equipe.

SharePoint

SharePoint

SharePoint é um sistema de colaboração baseado na web que usa uma variedade de aplicativos de fluxo de trabalho, bancos de dados de “lista” e outros componentes da web, bem como recursos de segurança para dar controle ao trabalho conjunto de grupos empresariais.

Calendário Perpétuo 1.0.38/1.0.36

Calendário Perpétuo 1.0.38/1.0.36

Van Nien Calendar é um aplicativo de visualização de calendário em seu telefone, ajudando você a ver rapidamente a data lunisolar em seu telefone, organizando assim seu trabalho importante.

Microsoft Outlook 2021

Microsoft Outlook 2021

O Microsoft Outlook é um aplicativo comercial e de produtividade desenvolvido pela Microsoft Corporation.

Clique para cima

Clique para cima

ClickUp é uma das plataformas de produtividade mais bem avaliadas para qualquer empresa. Grandes empresas como Google, Booking.com, San Diego Padres e Uber usam ClickUp para aumentar a produtividade no local de trabalho.

Visualizador PDF-XChange 2.5.322.10

Visualizador PDF-XChange 2.5.322.10

PDF se tornou um formato comumente usado para leitura, criação e envio de documentos de texto. Por sua vez, tem havido um aumento no número de programas utilizados para este tipo de documentação. PDF-XChange Viewer está entre um número crescente de visualizadores de PDF.

Apache Open Office

Apache Open Office

Apache OpenOffice oferece um conjunto completo de aplicativos Office que rivalizam com o Microsoft 365, especialmente em Excel, PowerPoint e Word. Ele permite que você gerencie seus projetos de forma mais eficaz e suporta diversos formatos de arquivo.

Baixar iTaxviewer 1.8.7

Baixar iTaxviewer 1.8.7

O software iTaxViewer é o software de leitura de arquivos XML mais popular atualmente. Este software é uma aplicação para leitura de declarações fiscais eletrónicas em formato XML da Direção Geral de Impostos.

Leitor de PDF Nitro

Leitor de PDF Nitro

Nitro PDF Reader é um prático editor de PDF que cobre todas as tarefas básicas que a maioria das pessoas realiza todos os dias com documentos PDF.

Leitor Foxit 12

Leitor Foxit 12

Foxit Reader é principalmente um leitor de PDF e também permite criar arquivos PDF, assiná-los, editá-los e adicionar anotações. Funciona em sistemas operacionais, existem plugins para diversos programas do pacote Microsoft Office.