VBA en Excel significa Visual Basic para Aplicaciones , que es el lenguaje de programación de Microsoft. Para optimizar el rendimiento y reducir el tiempo en Excel necesitamos Macros y VBA es la herramienta utilizada en el backend.
Algunos enlaces útiles para obtener más información sobre Macros, VBA en Excel:
En este artículo, vamos a discutir cómo usar Select Case Statement en Excel VBA.
Implementación:
En las pestañas de Microsoft Excel, seleccione la pestaña Desarrollador . Inicialmente, es posible que la pestaña Desarrollador no esté disponible.
La pestaña Desarrollador se puede habilitar fácilmente mediante un proceso de dos pasos:
- Haga clic derecho en cualquiera de las pestañas existentes en la parte superior de la ventana de Excel.
- Ahora seleccione Personalizar la cinta en el menú desplegable.
- En el cuadro de opciones de Excel, marque la casilla Desarrollador para habilitarlo y haga clic en Aceptar.
- Ahora, la pestaña Desarrollador está visible.
- Ahora haga clic en la opción Visual Basic en la pestaña Desarrollador y cree un nuevo módulo para escribir el programa usando la instrucción Seleccionar caso.
Developer -> Visual Basic -> Tools -> Macros
- Ahora crea una macro y dale un nombre adecuado.
- Esto abrirá la ventana del Editor donde puede escribir el código.
Seleccione Declaración de caso:
La declaración de caso selecto es similar a la declaración SWITCH-CASE en lenguajes de programación como C, C++, JAVA, etc. La estructura de Select Case en Excel es:
Select Case Expression/Condition Case Val_1 Block of statements when Expression matches Val_1 Case Val_2 Block of statements when Expression matches Val_2 Case Val_3 Block of statements when Expression matches Val_3 . . . Case Else Block of code when none of the above conditions match End Select Val_1, Val_2,... are the values.
Algunas palabras clave importantes utilizadas en Select Case en Excel son las siguientes:
- El caso es : se usa básicamente con números.
Por ejemplo Case IS < 70 // Significa todos los números menores de 70.
- Caso contrario : si ninguno de los valores de Casos coincide con la Expresión. Es similar al valor predeterminado en la instrucción SWITCH en C/C++.
- InputBox : para recibir información del usuario.
- MsgBox : para mostrar la salida al usuario.
Ejemplo 1 :
Queremos mostrar las calificaciones de los estudiantes según las calificaciones obtenidas por ellos en un examen. Considere el conjunto de datos que se muestra a continuación:
Código:
Sub Select_Case_Grade() 'Declaring variables to fetch marks and store the grade Dim marks As Integer, Grade As String 'Fetching marks from the Excel cell marks = Range("A2").Value Select Case marks Case Is >= 90 Grade = "S" Case Is >= 80 Grade = "A" Case Is >= 70 Grade = "B" Case Is >= 60 Grade = "C" Case Is >= 50 Grade = "D" Case Is >= 40 result = "E" Case Else Grade = "F" End Select 'Displaying the grade in the Excel cell Range("B2").Value = Grade End Sub
Ahora, cambie las marcas, el grado que se muestra será «S».
También puede escribir el código anterior usando un rango de números en lugar de Case Is .
Sub Select_Case_Grade() 'Declaring variables to fetch marks and store the grade Dim marks As Integer, Grade As String 'Fetching marks from the Excel cell marks = Range("A2").Value Select Case marks Case 91 To 100 Grade = "S" Case 81 To 90 Grade = "A" Case 71 To 80 Grade = "B" Case 61 To 70 Grade = "C" Case 51 To 60 Grade = "D" Case 40 To 50 result = "E" Case Else Grade = "F" End Select 'Displaying the grade in the Excel cell Range("B2").Value = Grade End Sub
Ejemplo 2: Considere que en una empresa, los empleados tienen que trabajar en un proyecto en base a turnos. La compañía quiere asignar turnos en base a reglas pares e impares y mantener la edad como criterio decisivo. Si la edad del empleado es impar entonces tiene que trabajar en el turno de noche y si es par entonces en el turno de mañana.
Seleccione Caso donde el usuario puede ingresar los datos en un cuadro.
Sub Select_Case_Allocate() 'Declaring variables to fetch marks and store the grade Dim Age As Integer 'Asking the user to enter the age Age = InputBox("Enter Your Age:") Select Case (Age Mod 2) = 0 Case True MsgBox "You will work in the morning shift" Case False MsgBox "You will work in the night shift" End Select End Sub
Ejemplo 3: Vamos a crear una pequeña calculadora que toma dos números como entrada y realiza sumas y multiplicaciones de estos números.
Código:
Sub Select_Case_Calculator() 'Declaring variables to fetch marks and store the grade Dim num1 As Integer, mum2 As Integer, operator As String, res As Integer 'Asking the user to enter the numbers and operator to calculate num1 = InputBox("Enter The First Number:") num2 = InputBox("Enter The Second Number:") operator = InputBox("Enter The Operator Name(Sum,Mul):") Select Case operator Case "Sum" res = num1 + num2 MsgBox ("The result is :" & res) Case "Mul" res = num1 * num2 MsgBox ("The result is :" & res) Case Else MsgBox "Please Enter a Valid Operator" End Select End Sub
Podemos modificar el código anterior y usar múltiples condiciones en el caso. Por ejemplo, el usuario puede ingresar la string Sum como «SUMA» o «suma» ya que el cuadro de diálogo de Excel distingue entre mayúsculas y minúsculas.
Sub Select_Case_Calculator() 'Declaring variables to fetch marks and store the grade Dim num1 As Integer, mum2 As Integer, operator As String, res As Integer 'Asking the user to enter the numbers num1 = InputBox("Enter The First Number:") num2 = InputBox("Enter The Second Number:") operator = InputBox("Enter The Operator Name(Sum,Mul):") Select Case operator Case "Sum", "SUM", "sum", "SUm", "SuM", "suM", "sUm" res = num1 + num2 MsgBox ("The result is :" & res) Case "Mul", "mul", "MUL", "MuL", "muL", "mUl", "MUl" res = num1 * num2 MsgBox ("The result is :" & res) Case Else MsgBox "Please Enter a Valid Operator" End Select End Sub
Ejemplo 4: Veamos un ejemplo usando un Select Case anidado.
Considere una empresa que tiene una política por departamento con respecto a la cantidad total de licencias que un empleado puede tomar en un solo año. Ahora, hay varios departamentos y hay empleados femeninos y masculinos y todos tienen políticas diferentes para solicitar la licencia. Por lo tanto, se usa un Select Case anidado para construir la declaración del problema donde los usuarios pueden ingresar los detalles del departamento y el género para verificar la cantidad máxima de días que pueden tomar vacaciones en un año.
Sub Select_Case_Empleave() 'Declaring variables to fetch Department and gender of employee Dim Department As String, sex As String 'Asking the user to enter the details Department = InputBox("Enter Your Department:") sex = InputBox("Enter Your Gender (Male,Female):") Select Case Department Case "HR" Select Case sex Case "Male" MsgBox ("You can take maximum 10 days leave in an year") Case "Female" MsgBox ("You can take maximum 20 days leave in an year") Case Else MsgBox ("Invalid Gender") End Select Case "IT" Select Case sex Case "Male" MsgBox ("You can take maximum 15 days leave in an year") Case "Female" MsgBox ("You can take maximum 25 days leave in an year") Case Else MsgBox ("Invalid Gender") End Select Case Else
Publicación traducida automáticamente
Artículo escrito por rishabhchakrabortygfg y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA