Switch VBA - Como usar a instrução Switch no Excel VBA?

Índice:

Anonim

Instrução de comutação VBA do Excel

A mudança no VBA é semelhante à seleção da função de maiúsculas e minúsculas. A única diferença entre elas é que temos que escrever códigos muito menores em um switch em comparação para selecionar maiúsculas e minúsculas. Podemos escrever uma instrução switch dentro de um subprocedimento ou como uma função definida pelo usuário no VBA.

O switch no VBA avalia uma expressão e fornece a saída com base nas condições para essa expressão. Nas instruções de caso de seleção, definimos casos em que, se tivermos um caso, o resultado deve ser be assim por diante. Isso exigia a criação de muitos códigos para a instrução de caso de seleção, mas no Switch, podemos mesclar todas as condições e expressões em uma instrução em vez de ter várias instruções de caso.

Sintaxe da instrução Switch

O switch calcula a primeira expressão e, se o valor for verdadeiro, ele retornará o valor para a expressão e, se o valor da expressão 1 não for verdadeiro, continuará com o mesmo cálculo da expressão 2 e, se o resultado for verdadeiro, o valor 2 será exibido, mas se a expressão retornada for falsa, o comutador passa para outra expressão.

Então, o que acontece se nenhuma das expressões for verdadeira e todas elas forem retornadas como False, obteremos um erro de tempo de execução nesse caso, a menos que tenhamos um tratamento preventivo de erros para esse cenário.

Como usar a instrução Switch no Excel VBA?

Abaixo estão os diferentes exemplos para usar a instrução VBA Switch no Excel.

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

Switch VBA - Exemplo # 1

Vamos começar com o exemplo básico para ter uma idéia da declaração do switch VBA. Receberemos a entrada do usuário e, com base nessa entrada, definiremos a saída. Receberemos a entrada do número 1 ao 5 e, com base na entrada, teremos resultados predefinidos, mas se o usuário digitar qualquer número diferente do nosso intervalo, teremos que lidar com esse erro.

Siga as etapas abaixo para usar a instrução Switch no Excel VBA:

Etapa 1: na guia visual basic, insira o editor de VB na guia do desenvolvedor.

Etapa 2: Na janela Editor do VB, insira um novo módulo na guia Inserir.

Etapa 3: declarar um novo subprocedimento no novo módulo recém-criado.

Código:

 Subamostra () End Sub 

Etapa 4: Declare duas variáveis ​​A e B, uma como número inteiro e outra como uma sequência.

Código:

 Sub Amostra () Dim A Como Inteiro Dim B Como String End Sub 

Etapa 5: na variável A, armazene o valor fornecido pelo usuário usando a função da caixa de entrada.

Código:

 Subamostra () Dim A Como Inteiro Dim B Como String A = InputBox ("Digite um valor", "o valor deve estar entre 1 e 5") End Sub 

Etapa 6: Agora, na variável B, usaremos uma instrução de chave VBA para avaliar o resultado conforme a entrada fornecida pelo usuário.

Código:

 Subamostra () Dim A Como Inteiro Dim B Como String A = InputBox ("Digite um valor", "o valor deve estar entre 1 e 5") B = Alternar (A = 1, "Um", A = 2, "Dois ", A = 3, " Três ", A = 4, " Quatro ", A = 5, " Cinco ") End Sub 

Etapa 5: Exiba o valor armazenado em B usando a função MSGBOX.

Código:

 Subamostra () Dim A Como Inteiro Dim B Como String A = InputBox ("Digite um valor", "o valor deve estar entre 1 e 5") B = Alternar (A = 1, "Um", A = 2, "Dois ", A = 3, " Três ", A = 4, " Quatro ", A = 5, " Cinco ") MsgBox B End Sub 

Etapa 6: execute o código acima pressionando a tecla F5 e ele nos pede para inserir um número inteiro. Forneça um número 3 e pressione ok para ver o resultado.

Etapa 7: Agora, execute novamente o código e digite o número 6 e veja o resultado que obtemos.

Recebemos o erro de tempo de execução, pois em nossa instrução switch não há uma expressão para definir 6. Portanto, nesses cenários, precisamos ter um tratamento preventivo de erros.

Etapa 8: para superar esse erro de tempo de execução, declare outra variável Var como Variant.

Código:

 Subamostra () Dim A Como Inteiro Dim B Como String Dim var Como Variante A = InputBox ("Digite um valor", "o valor deve estar entre 1 e 5") B = Alternar (A = 1, "One", A = 2, "Dois", A = 3, "Três", A = 4, "Quatro", A = 5, "Cinco") MsgBox B End Sub 

Etapa 9: Antes de nossa instrução switch, use a instrução on error goto para que, se o código encontrar um erro, ele saiba para onde ir.

Código:

 Subamostra () Dim A Como Inteiro Dim B Como String Dim var Como Variante A = InputBox ("Digite um valor", "o valor deve estar entre 1 a 5") Em erro GoTo var B = Switch (A = 1, "One ", A = 2, " Dois ", A = 3, " Três ", A = 4, " Quatro ", A = 5, " Cinco ") MsgBox B End Sub 

Etapa 10: agora defina o que acontecerá se o código encontrar um erro,

Código:

 Subamostra () Dim A Como Inteiro Dim B Como String Dim var Como Variante A = InputBox ("Digite um valor", "o valor deve estar entre 1 e 5") Em erro GoTo var B = Switch (A = 1, "One ", A = 2, " Dois ", A = 3, " Três ", A = 4, " Quatro ", A = 5, " Cinco ") MsgBox B var: MsgBox" Você digitou um número inválido "Resume Next End Sub 

Etapa 11: Agora vamos executar o código novamente pressionando F5 ou clicando no botão Play e insira o valor 6 e, em seguida, pressione ok para ver o resultado final, caso a instrução switch seja encontrada com erro.

Switch VBA - Exemplo # 2

Neste exemplo, tenho dados na folha 1, que contém o nome de alguns filmes e a duração do tempo em minutos. Com base na duração que quero definir, o filme é longo ou super longo. Veja os dados abaixo.

Siga as etapas abaixo para usar a opção Switch no Excel VBA:

Etapa 1: Vamos começar no mesmo módulo e começar definindo outro subprocedimento da seguinte maneira.

 Sub Amostra1 () End Sub 

Etapa 2: declarar duas variáveis ​​A e B, uma como número inteiro, outra como String, da seguinte maneira:

 Sub Amostra1 () Dim A Como Inteiro Dim B Como String End Sub 

Etapa 3: Agora, na variável A, vamos armazenar o valor da duração do filme para qualquer um dos filmes.

 Sub Amostra1 () Dim A Como Inteiro Dim B Como String A = Faixa ("A3"). Deslocamento (0, 1) .Value End Sub 

Etapa 4: Agora, na variável B, vamos usar uma instrução de comutador VBA para definir qual seria o cenário para cada duração do filme.

 Subamostra1 () Dim A Como Inteiro Dim B Como String A = Faixa ("A3"). Deslocamento (0, 1) .Valor B = Chave (A <= 70, "Muito Curto", A <= 100, "Curto ", A <= 120, " Longo ", A <= 150, " Muito longo ") End Sub 

Etapa 5: Agora, e se o valor for maior que 180, devemos ter outro manipulador de erros aqui ou podemos simplesmente escrever outra expressão como True, Value. Como todos os outros valores serão retornados, o código falso executará essa expressão.

 Subamostra1 () Dim A Como Inteiro Dim B Como String A = Faixa ("A3"). Deslocamento (0, 1) .Valor B = Chave (A <= 70, "Muito Curto", A <= 100, "Curto ", A <= 120, " Longo ", A <= 150, " Muito longo ", Verdadeiro, " Aborrecido ") End Sub 

Etapa 6: Exiba o valor de B usando a função msgbox.

 Subamostra1 () Dim A Como Inteiro Dim B Como String A = Faixa ("A3"). Deslocamento (0, 1) .Valor B = Chave (A <= 70, "Muito Curto", A <= 100, "Curto ", A <= 120, " Longo ", A <= 150, " Muito longo ", Verdadeiro, " Aborrecido ") MsgBox B End Sub 

Etapa 7: execute o código pressionando a tecla F5 ou clicando no botão Play e veja a saída.

A célula A3 possui o filme 2, cujo comprimento era 100, portanto, a saída é tão curta.

Comutador VBA - Exemplo # 3

Vamos usar a instrução switch para criar uma função definida pelo usuário para o exemplo acima, para que possamos usá-la em nossa planilha sempre que necessário.

Siga as etapas abaixo para usar a instrução Switch no Excel VBA:

Etapa 1: no mesmo módulo, declare uma função chamada como comprimento do filme.

 Função FilmLength (Comprimento Como Inteiro) Como Função Final de String 

Etapa 2: agora use uma instrução VBA Switch para definir os parâmetros com base no comprimento da seguinte maneira:

 Função FilmLength (Leng Como Inteiro) Como String FilmLength = Alternar (Leng <= 70, "Muito Curto", Leng <= 100, "Curto", Leng <= 120, "Longo", Leng <= 150, "Muito Longo" Função Final, Verdadeira, "Chata") 

Etapa 3: agora vamos para a planilha onde tínhamos nossos dados, digite = FilmLength (

Etapa 4: Podemos ver nossa função fornecer um argumento como valores na célula B2.

Etapa 5: Após aplicar a fórmula, pressione enter.

Etapa 6: Agora arraste a função para a célula C10 e veja o resultado.

Coisas para lembrar

  • A função Switch avalia a expressão nela. Se a primeira expressão for avaliada como verdadeira, ela não avaliará as outras expressões.
  • Se nenhuma das expressões for verdadeira, ela retornará um erro em tempo de execução.
  • Precisamos ter um manipulador de erro na instrução switch ou expressão para que, se toda expressão for retornada false, não encontraremos um erro em tempo de execução.
  • Uma opção é semelhante à instrução de seleção de caso.

Artigos recomendados

Este é um guia para o VBA Switch. Aqui, discuta como usar a instrução switch no Excel VBA, juntamente com alguns exemplos práticos e o modelo do Excel para download. Você também pode consultar nossos outros artigos sugeridos -

  1. Uso da função VBA InStr
  2. Função SWITCH do Excel
  3. Número aleatório VBA
  4. Função CONCATENATE no Excel