Lar Mídia social Como usar If-Then no Excel 2016 VBA - dummies

Como usar If-Then no Excel 2016 VBA - dummies

Índice:

Vídeo: Excel VBA IF THEN Statement (with ELSEIF & Looping in cells) 2025

Vídeo: Excel VBA IF THEN Statement (with ELSEIF & Looping in cells) 2025
Anonim

If-Então é a estrutura de controle mais importante do VBA. Você provavelmente usará esse comando diariamente. Use a estrutura If-Then quando desejar executar uma ou mais declarações de forma condicional. 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 for não verdadeira. Aqui está um procedimento simples CheckUser, recodificado para usar a estrutura If-Then-Else:

Sub CheckUser2 () UserName = InputBox ("Digite seu nome:") Se UserName = "Satya Nadella" Então MsgBox ("Welcome Satya …") '… [Mais código aqui] … Else MsgBox "Desculpa. Somente Satya Nadella pode executar isso. "End If End Sub

If-Then examples

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

Sub GreetMe () Se Time <0. 5 então MsgBox" Good Morning "End Sub

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

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

Sub GreetMe2 () Se Time = 0. 5 Então MsgBox "Good Afternoon" End Sub

Observe que> = (maior ou igual a) é usado para a segunda declaração If-Then. Isso garante que o dia inteiro seja coberto. Se> usado (maior que), nenhuma mensagem apareceria se este procedimento fosse executado precisamente às 12:00 da tarde. Isso é bastante improvável, mas com um programa importante como esse, você não quer correr riscos.

Um exemplo If-Then-Else

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

Sub GreetMe3 () Se Time <0. 5 então MsgBox "Good Morning" Else _ MsgBox "Good Afternoon" End Sub

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

Sub GreetMe4 () Se Time <0. 5 então MsgBox "Good Morning" Else MsgBox "Good Afternoon" End If End Sub

Na verdade, você pode inserir qualquer número de declarações no âmbito do Se parte e qualquer número de declarações sob a parte Else. Essa sintaxe é mais fácil de ler e faz as declarações mais curtas.

E se você precisar expandir a rotina 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 use uma estrutura aninhada If-Then-Else. Aninhamento 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 Como String If Time = 0. 5 E Time = 0. 75 Então Msg = "Evening" MsgBox "Good" & Msg End Sub

Um novo toque foi adicionado com o uso de uma variável. A variável Msg obtém um valor de texto diferente, dependendo da hora do dia. A declaração MsgBox exibe a saudação: Bom dia, boa tarde ou boa noite.

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

Sub GreetMe6 () Dim Msg As String If Time = 0. 5 E Time = 0. 75 Então Msg = "Evening" End If MsgBox "Good" & Msg End Sub

Usando ElseIf

Nos exemplos anteriores, cada declaração na rotina é executada. Uma estrutura ligeiramente mais eficiente iria sair da rotina assim que uma condição for verdadeira. Por manhã, por exemplo, o procedimento deve exibir a mensagem Good Morning e depois sair - sem avaliar as outras condições supérfluas.

Com uma pequena rotina como essa, você não precisa se preocupar com a velocidade de execução. Mas para aplicativos maiores em que a velocidade é crítica, você deve saber sobre outra sintaxe para a estrutura If-Then.

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

Sub GreetMe7 () Dim Msg As String If Time = 0. 5 E Time <0. 75 então Msg = "Afternoon" Else Msg = "Evening "End If 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, esse procedimento é um pouco mais eficiente do que os exemplos anteriores. O trade-off é 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 Dim Como Desconto Dim Dim como Quantidade Dupla = InputBox ("Digite Quantidade:") Se Quantidade > 0, em seguida, Discount = 0. 1 Se Quantidade> = 25 Então Desconto = 0. 15 Se Quantidade> = 50 Depois Desconto = 0. 2 Se Quantidade> = 75 Então Desconto = 0. 25 MsgBox "Desconto:" & Discount End Sub

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

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

Sub ShowDiscount2 () Dim Quantity As Long Dim Discount As Double Quantity = InputBox ("Enter Quantity:") Se Quantidade> 0 e Quantidade <25 então Discount = 0.1 ElseIf Quantidade> = 25 E Quantidade <50, em seguida, Discount = 0. 15 ElseIf Quantidade> = 50 E Quantidade <75, em seguida, Discount = 0. 2 ElseIf Quantidade> = 75 Then Discount = 0. 25 End If MsgBox "Discount:" & Discount End Sub

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

Como usar If-Then no Excel 2016 VBA - dummies

Escolha dos editores

Como configurar uma conta no Microsoft Outlook 2013 - manequins

Como configurar uma conta no Microsoft Outlook 2013 - manequins

A primeira vez que você executa o Outlook 2013, você pode ser solicitado a configurar sua conta de e-mail. Se isso acontecer, siga as instruções para começar. Caso contrário, você pode iniciar manualmente o processo de configuração de sua conta no Outlook fazendo o seguinte:

Como configurar uma pasta de pesquisa no Outlook 2013 - dummies

Como configurar uma pasta de pesquisa no Outlook 2013 - dummies

O recurso de pastas de pesquisa no Outlook 2013 foi projetado para ajudá-lo a organizar as mensagens na sua Caixa de entrada e outras pastas. As pastas de pesquisa fornecem um único lugar onde você sempre pode procurar encontrar um determinado tipo de mensagem. Uma pasta de pesquisa na verdade não move suas mensagens; É realmente um tipo de localização imaginária para ...

Como configurar uma conta de email da Internet no Outlook 2013 - manequins

Como configurar uma conta de email da Internet no Outlook 2013 - manequins

Depois de se inscrever com um ISP, você pode configurar o Outlook 2013 para enviar e receber e-mails da sua conta. Embora qualquer conta individual de e-mail da Internet precise de configuração apenas uma vez, você pode configurar muitas dessas contas se precisar delas. Para configurar uma conta de e-mail da Internet, siga estas etapas:

Escolha dos editores

Características não tão comuns de NoSQL - dummies

Características não tão comuns de NoSQL - dummies

Embora alguns recursos sejam bastante comuns aos bancos de dados NoSQL ( por exemplo, agnosticismo de esquema e estrutura não-relacional), não é incomum que um banco de dados não tenha um ou mais dos seguintes recursos e ainda se qualifique como um banco de dados NoSQL moderno. O software NoSQL de código aberto é único porque o movimento de código aberto orientou o desenvolvimento em vez de seguir um ...

Desempenho e Big Data - dummies

Desempenho e Big Data - dummies

Apenas ter um computador mais rápido não é suficiente para garantir o nível correto de desempenho para lidar grandes dados. Você precisa distribuir componentes de seu grande serviço de dados em uma série de nós. Na computação distribuída, um nó é um elemento contido dentro de um conjunto de sistemas ou dentro de um rack. A ...

Superando a grande falta de habilidades de dados - dummies

Superando a grande falta de habilidades de dados - dummies

As habilidades de dados grandes são escassas. Como a quantidade de informações digitais geradas pelas empresas cresceu exponencialmente, surgiu um desafio (algumas pessoas até chamam de crise): não há pessoas suficientes com as habilidades necessárias para analisar e interpretar todos esses grandes dados. Em uma pesquisa recente, mais da metade de ...

Escolha dos editores

Requisitos do sistema para QuickBooks Online - dummies

Requisitos do sistema para QuickBooks Online - dummies

Usando um produto de software baseado na Web geralmente não exige muito hardware e software; na verdade, as exigências do QuickBooks Online (QBO) e do QuickBooks Online Accountant (QBOA) não são extensas. Em particular, você precisa de uma conexão com a Internet, e uma conexão de alta velocidade é recomendada. Um dos quatro navegadores da Internet suportados: o Chrome Firefox Internet Explorer 10 ou ...

A maneira rápida de verificar cheques com QuickBooks 2015 - manequins

A maneira rápida de verificar cheques com QuickBooks 2015 - manequins

Se você quiser pagar uma conta com O QuickBooks 2015 que não é para o inventário, que você não será reembolsado, ou que você não precisa rastrear de forma, forma ou forma, você pode escrever seu cheque diretamente do registro. Este método é o caminho rápido e fácil de seguir. Siga estas etapas: ...

O comando Localizar no QuickBooks 2012 Edit Menu - manequins

O comando Localizar no QuickBooks 2012 Edit Menu - manequins

O comando Find no menu Editar em O QuickBooks 2012 exibe a guia Simples da janela Localizar ou a aba Avançada da janela Localizar. Ambas as abas permitem que você procure por seu registro e encontre as transações. Para usar a guia Simples, use as caixas Tipo de transação, Cliente: Trabalho, Data, Fatura e Montante ...