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
Relacionado
Descubre más desde Recursos para formacion
Suscríbete y recibe las últimas entradas en tu correo electrónico.