¿Cómo usar la función Switch en VBA?

`Switch` es una función en Visual Basic for Applications (VBA) que evalúa una lista de expresiones y devuelve un valor asociado con la primera expresión que se evalúa como `True`. Funciona de manera similar a una serie de `If… ElseIf… Else` pero de una forma más compacta y a menudo más legible, especialmente cuando se tiene una lista sustancial de condiciones.

Aquí tienes un ejemplo básico de cómo usar la función `Switch` en VBA:

Dim result As String

result = Switch(
    condition1, "Resultado 1",
    condition2, "Resultado 2",
    condition3, "Resultado 3",
    ' ...
    conditionN, "Resultado N"
)

MsgBox result

En el ejemplo anterior, `condition1`, `condition2`, `condition3`, …, `conditionN` son expresiones booleanas. La función `Switch` examinará cada condición en el orden en que se presentan y devolverá el valor asociado con la primera condición que se evalúe como `True`. Si ninguna de las condiciones es verdadera y no se ha proporcionado un valor `True` predeterminado, `Switch` devolverá `Null`.

Aquí te dejo un ejemplo más concreto:

Sub ExampleSwitch()
    Dim score As Integer
    Dim grade As String
    
    ' Imagina que tenemos una puntuación:
    score = 85
    
    ' Usamos Switch para asignar una calificación basada en la puntuación:
    grade = Switch(
        score >= 90, "A",
        score >= 80, "B",
        score >= 70, "C",
        score >= 60, "D",
        score < 60, "F"
    )
    
    ' Mostramos la calificación:
    MsgBox "La calificación es: " & grade
End Sub

En este ejemplo, si `score` es 85, la función `Switch` comprobará las condiciones una por una. La primera condición que resulta cierta es `score >= 80`, por lo que la función devolverá «B» y eso es lo que se asignará a la variable `grade`.

Recuerda que, si bien la función `Switch` puede hacer que tu código sea más limpio y más fácil de leer, no es adecuada para todas las situaciones y estructuras lógicas. Para algunos casos, especialmente si tienes acciones específicas que ejecutar en lugar de valores para devolver, usar `If… ElseIf… Else` o `Select Case` puede ser más apropiado.

Conoce nuestros servicios

Conoce nuestra tienda

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Deja un comentario