Enjoy A New Student Discount All 55,000 Courses on sale for Only $12.99

Ends in 05h 23m 49s

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

Deja un comentario

/*Si te ha gustado el artículo
no dudes en compartirlo*/

Facebook
Twitter
LinkedIn

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies

Ver mi IP

Ver ip de mi máquina
tipo valor
Ip: 18.234.55.154
Proxy: 18.234.55.154
Remote host: ec2-18-234-55-154.compute-1.amazonaws.com
Remote port: 25160
** 18.234.55.154