Excel.Macros:Select…Case

Otra estructura de comparación que presenta ventajas frente al if, cuando se han de realizar comparaciones múltiples con una única variable es la sentencia select case. La forma de trabajar con ella, es la siguiente:

Select Case <expresion>
Case <Test1>
hacer lo que sea si expresion1=test1
Case <Test2>
hacer lo que sea si expresion1=test2

Case Else
hacer lo que sea, si no se ha cumplido nada de lo anterior
End Select

Si vemos el ejercicio anterior de los continentes presentado con esta nueva herramienta, quedaria así:

nombre = "???"
    valor = Range("A1").Value
    valor = UCase(valor)
    Select Case valor
        Case "EU"
            nombre = "Europa"
        Case "AS"
            nombre = "Asia"
        Case "AF"
            nombre = "Africa"
        Case "AM"
            nombre = "America"
        Case "O"
            nombre = "Oceania"
        Case Else
            MsgBox "El codigo de continente es desconocido"
    End Select
    Range("B1") = nombre

Como veis, no es que haya mucha diferencia con la solución planteada con ElseIf, sin embargo, el código queda mucho más claro, la estructura del programa aparece mas limpia, nos ahorramos el tener que ir repitiendo la comparación en cada if,…

Pero todavia hay otra forma de utilizar el Selec Case, que es analizando intervalos; observar el siguiente codigo:

    solucion = ""
    valor = Range("A2").Value

    Select Case valor
        Case 100, 200, 300    'solucion 1
            solucion = "100,200,300"
        Case 400 To 600       'solucion 2
            solucion = "400 To 600"
        Case 700 To 900, 1300 To 2000 'solucion 3
            solucion = "700 To 900, 1300 To 2000"

        Case Else
            MsgBox "No he encontrado valor valido"
    End Select
    Range("B2") = solucion

En este caso, tomamos la solución 1 si A2 vale 100, 200 o 300 exactamente, la 2 la tomaremos si el valor de  A2 esta entre 400 y 600, y la 3, será cuando A2 este entre 700 y 900 o 1300 y 200; si ninguno cumple, se saldra por Case Else y se dará un mensaje

Acerca de Miguel Garcia

Programador, Desarrollador web, Formador en distintas areas de informatica y director de equipos multidisciplinares.
Esta entrada fue publicada en Excel, Formacion y etiquetada , . Guarda el enlace permanente.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.