Cómo usar la Estructura de Casos Selectos en Excel 2016 VBA

  1. Software
  2. Oficina de Microsoft
  3. Excel
  4. Cómo usar la Estructura de Casos Selectos en Excel 2016 VBA

Libro Relacionado

Programación de Excel VBA para Dummies, 4ª Edición

Por John Walkenbach

La estructura Select Case es una estructura VBA útil para decisiones que implican tres o más opciones en Excel 2016 (aunque también funciona con dos opciones, proporcionando una alternativa a la estructura If-Then-Else).

Un ejemplo de Select Case

El siguiente ejemplo muestra cómo utilizar la estructura de Seleccionar Caso:

Sub ShowDiscount3() Dim Quantity As Long Dim Discount As Double Quantity = InputBox("Enter Quantity: ") Select Case Quantity Case Case 0 to 24 Discount = 0.1 Case 25 to 49 Discount = 0.15 Case 50 to 74 Discount = 0.2 Case Is >= 75 Discount = 0.25 End Select MsgBox "Discount: "& DiscountEnd Sub

En este ejemplo, se está evaluando la variable Cantidad. Los chequeos de rutina para cuatro casos diferentes (0-24, 25-49, 50-74, y 75 o más).

Cualquier número de declaraciones puede seguir a cada declaración de Caso, y todas ellas se ejecutan si el caso es verdadero. Si utiliza sólo una sentencia, como en este ejemplo, puede poner la sentencia en la misma línea que la palabra clave Caso, precedida por dos puntos – el carácter separador de sentencia VBA. Esto hace que el código sea más compacto y un poco más claro. Así es como se ve la rutina en este formato:

Sub ShowDiscount4 () Dim Quantity As Long Dim Discount As Double Quantity = InputBox("Enter Quantity: ") Seleccione Case Quantity Case Case 0 to 24: Discount = 0.1 Case 25 to 49: Discount = 0.15 Case 50 to 74: Descuento = 0.2 Caso Is >= 75: Descuento = 0.25 Finalizar Seleccionar Caja de Mensajes "Descuento": "& DiscountEnd Sub

Cuando VBA ejecuta una estructura Select Case, se sale de la estructura tan pronto como VBA encuentra un caso verdadero y ejecuta las sentencias para ese caso.

Un ejemplo anidado de Select Case

Como se muestra en el siguiente ejemplo, puede anidar estructuras de Select Case. Esta rutina examina la celda activa y muestra un mensaje que describe el contenido de la misma. Observe que el procedimiento tiene tres estructuras de Select Case, y cada una tiene su propia instrucción End Select:

Sub CheckCell() Dim Msg As String Select Case IsEmpty(ActiveCell) Case True Msg = "is blank." Caso Else Caso Else Caso Else Caso ActiveCell.HasFormula Caso True Msg = "tiene una fórmula" Caso Else Caso IsNumeric(ActiveCell) Caso True Msg = "tiene un número" Caso Else Msg = "tiene texto" Fin Fin Seleccionar Fin Fin Seleccionar Fin Seleccionar Fin Seleccionar MsgBox "Celda " & ActiveCell.Address & " " & MsgEnd Sub

La lógica es algo así:

  1. Averigüe si la celda está vacía.
  2. Si no está vacío, vea si contiene una fórmula.
  3. Si no hay ninguna fórmula, averigüe si contiene un valor numérico o texto.

Cuando la rutina termina, la variable Msg contiene una cadena que describe el contenido de la celda. La función MsgBox muestra ese mensaje.

Un mensaje mostrado por el procedimiento CheckCell.

Puede anidar las estructuras de Select Case tan profundamente como necesite, pero asegúrese de que cada declaración de Select Case tenga una declaración de End Select correspondiente.

Si todavía no está convencido de que valga la pena el esfuerzo de sangrar el código, la lista anterior sirve como un buen ejemplo. Las hendiduras realmente para hacer que los niveles de anidamiento sean claros. Eche un vistazo al mismo procedimiento sin ninguna sangría:

Sub CheckCell()Dim Msg As StringSelect Case IsEmpty(ActiveCell)Case TrueMsg = "está en blanco" Case ElseSelect Case ActiveCell.

H

asFormulaCase TrueMsg = "tiene una fórmula"Case ElseSelect Case IsNumeric(ActiveCell)Case TrueMsg = "tiene un número"Case ElseMsg = "tiene texto"End SelectEnd SelectEnd SelectMsgBox "Cell " & ActiveCell.Address & " " & MsgEnd Sub

Bastante incomprensible, ¿eh?

No Responses

Write a response