Como utilizar a estrutura select case no excel 2016 vba
A estrutura Select Case é uma estrutura VBA útil para decisões que envolvam três ou mais opções no Excel 2016 (embora também trabalha com duas opções, fornecendo uma alternativa para a estrutura If-Then-Else).
Conteúdo
Um exemplo Select Case
O exemplo a seguir mostra como usar a estrutura Select Case:
Sub ShowDiscount3 () Quantidade Dim Como LongDim desconto como DoubleQuantity = InputBox ( “Digite a quantidade:“) Select Case QuantityCase 0 Para 24Discount = 0.1Case 25 Para 49Discount = 0.15Case 50 Para 74Discount = 0.2Case é >- = 75Discount = 0.25End SelectMsgBox “Discount“ & DiscountEnd Sub
Neste exemplo, a variável Quantidade está a ser avaliado. As verificações de rotina para quatro casos diferentes (0-24, 25-49, 50-74, e 75 ou mais).
Qualquer número de declarações pode seguir cada instrução Case, e todos eles são executados se o caso é verdadeiro. Se você usar apenas uma instrução, como neste exemplo, você pode colocar a declaração na mesma linha como a palavra-chave Case, precedido por dois pontos - o personagem declaração separador VBA. Isso torna o código mais compacto e um pouco mais clara. Veja como a rotina parece neste formato:
Sub ShowDiscount4 () Quantidade Dim Como LongDim desconto como DoubleQuantity = InputBox ( “Digite a quantidade:“) Select Case QuantityCase 0 a 24: Discount = 0.1Case 25 a 49: Discount = 0.15Case 50 a 74: Discount = 0.2Case é gt; = 75: desconto = 0.25End SelectMsgBox “desconto:“ & DiscountEnd Sub
Quando VBA executa uma estrutura Select Case, a estrutura é encerrado assim que VBA encontra um verdadeiro caso e executa os comandos para esse caso.
Um exemplo Select Case aninhada
Como demonstrado no exemplo a seguir, você pode aninhar Select estruturas caso. Esta rotina examina a célula ativa e exibe uma mensagem descrevendo o conteúdo da célula. Observe que o procedimento tem três Seleccione estruturas de caso, e cada um tem seu próprio End Select declaração:
Sub CheckCell () Dim Msg Como StringSelect Processo EstáVazio (ActiveCell) Caso TrueMsg = “está em branco.” Processo ElseSelect Processo ActiveCell.HasFormulaCase TrueMsg = “tem uma fórmula” Processo ElseSelect Processo IsNumeric (ActiveCell) Caso TrueMsg = “tem um número” Processo ElseMsg = “tem texto” End SelectEnd SelectEnd SelectMsgBox “Cell“ & ActiveCell.Address & ““ & MsgEnd Sub
A lógica é algo como isto:
Descubra se a célula estiver vazia.
Se não estiver vazia, ver se ele contém uma fórmula.
Se não há nenhuma fórmula, descobrir se ele contém um valor numérico ou de texto.
Video: Excel 2010 VBA Tutorial 16 - Select Case (Switch) Statement
Quando as extremidades de rotina, a variável Msg contém uma cadeia que descreve o conteúdo da célula. A função MsgBox exibe essa mensagem.
Você pode aninhar Select estruturas de caso tão profundamente quanto você precisa, mas certifique-se de que cada instrução Select Case tem uma instrução SELECT correspondente End.
Se você ainda não está convencido de que o recuo do código vale a pena o esforço, a listagem anterior serve como um bom exemplo. Os recortes realmente para fazer os níveis de aninhamento clara. Dê uma olhada o mesmo procedimento sem qualquer recuo:
Video: Excel VBA - Select Case
Sub CheckCell () Dim Msg Como StringSelect Processo EstáVazio (ActiveCell) Caso TrueMsg = “está em branco.” Processo ElseSelect Processo ActiveCell.HasFormulaCase TrueMsg = “tem uma fórmula” Processo ElseSelect Processo IsNumeric (ActiveCell) Caso TrueMsg = “tem um número” Processo ElseMsg = “tem texto” End SelectEnd SelectEnd SelectMsgBox “Cell“ & ActiveCell.Address & ““ & MsgEnd Sub
Bastante incompreensível, eh?