En este artículo, aprenderemos cómo crear funciones definidas por el usuario en Microsoft Excel usando el VBA.
Función definida por el usuario: - Microsoft Excel ya tiene muchas funciones, pero todavía todos tienen diferentes requisitos, situación, podemos crear nuestra propia función según el requisito que se llama Función definida por el usuario. Podemos usar la función definida por el usuario como otras funciones en Excel.
A continuación se muestran los temas para los que crearemos la función definida por el usuario:
1). ¿Cómo contar el número de palabras en celda o rango?
2). ¿Cómo extraer una palabra de una oración o celda en Excel?
3). ¿Cómo crear la fórmula para ISO?
4). ¿Cómo saber el nombre de la hoja de trabajo y el libro de trabajo usando el VBA?
5). ¿Cómo extraer la primera y la última palabra de una celda en Excel?
¿Cómo crear la función definida por el usuario para contar el número de palabras en la celda o rango?
Tenemos datos en la hoja 1 en la que tenemos algunas direcciones, por lo que queremos contar las palabras en una celda o un rango creando la función definida por el usuario a través de VBA en Excel.
Para que la función definida por el usuario, siga los pasos que se indican a continuación: -
- Abra la página de VBA y presione la tecla Alt + F11.
- Inserte un módulo.
Escriba el código mencionado a continuación:
Función WORDSCOUNT (rRange As Range) Tan largo Dim rCell como rango Dim Count Tan largo para cada rCellInrRange lCount = lCount + Len (Trim (rCell)) - Len (Reemplazar (Trim (rCell), "", "")) + 1 Siguiente rCell WORDSCOUNT = lCount End Function
Explicaciones del código: - Para hacer la función definida por el usuario, iniciamos el código en el nombre de la función y definimos las variables. Hemos utilizado "For Each bucles" en el código para contar las palabras en el rango.
¿Cómo usar esta función en Excel?
Para utilizar esta función, siga los pasos que se indican a continuación: -
- Vaya a la hoja de Excel.
- Para contar las palabras de una celda, ingrese la fórmula en la celda D7.
- = CUENTA PALABRAS (C7), la celda C7 es la celda en la que queremos calcular las palabras.
- La función devolverá 6, lo que significa que la celda C7 contiene 6 palabras.
- Para hacer el mismo cálculo para el resto de las celdas, copie la misma fórmula y péguela en el rango.
- Para contar las palabras en el rango, use la fórmula como = CUENTA PALABRAS (C7: C16) y presione Entrar.
- La función devolverá el recuento de palabras.
Nota: - Esta UDF será útil para contar las palabras en un rango o en una sola celda.
Ahora escribiremos el código para contar la palabra usando el delimitador especificado (,). Siga los pasos que se indican a continuación: -
Función SEPARATECOUNTWORDS (rRange como rango, separador opcional como variante) Tan largo Dim rCell como rango Dim Count As Long If IsMissing (separator) Then separator = "," End If For Each rCellInrRange lCount = lCount + Len (Trim (rCell)) - Len (Reemplazar (Trim (rCell), separador, "")) Siguiente rCell SEPARATECOUNTWORDS = lCount Fin Función
Para utilizar esta función, siga los pasos que se indican a continuación: -
- Vaya a la hoja de Excel.
- Para contar los delimitadores específicos en la palabra, usaremos esta función definida.
- = SEPARATECOUNTWORDS (C7) y presione Enter.
- La función devolverá el recuento de los delimitadores específicos.
¿Cómo extraer una palabra de una oración o celda en Microsoft Excel usando el VBA?
Tenemos datos en sheet1. En el que tenemos algunas direcciones, queremos extraer las palabras de una oración o celda o un rango creando la función definida por el usuario a través de VBA en Excel.
Para que la función definida por el usuario, siga los pasos que se indican a continuación: -
- Abra la página de VBA y presione la tecla Alt + F11.
- Inserte un módulo.
- Escriba el código mencionado a continuación:-
Función GETWORD (texto como variante, N como entero, delimitador opcional como variante) como cadena Si falta (delimitador) Entonces delimitador = "" End If GETWORD = Split (texto, delimitador) (N - 1) Función final
Explicación del código: - En el código mencionado anteriormente, hemos mencionado el nombre de la función con las variables. Y luego habíamos definido los criterios para extraer la palabra de oración o celda.
Ahora aprenderemos a usar esta fórmula. Siga los pasos que se indican a continuación: -
- Vaya a la hoja de Excel.
- Utilice esta fórmula en la celda D7.
- = GETWORD (C7,2) y presione Entrar.
- La función devolverá la segunda palabra de la celda porque en la fórmula habíamos mencionado para 2Dakota del Norte palabra del número. Si desea recuperar la palabra que se coloca en 3rd posición, debe cambiar el número de 2 a 3 en la fórmula.
¿Cómo crear la fórmula del número de semana ISO en Microsoft Excel usando el VBA?
Aprenderemos cómo podemos crear una fórmula de número de semana ISO en Excel con esta UDF. Esta función la usaremos para identificar que la fecha mencionada pertenece a qué número de semana del año.
Tenemos una lista de fechas en la hoja y, en la segunda columna, queremos recuperar los números de la semana.
Para crear la UDF para este requisito, siga los pasos que se indican a continuación.:-
- Abra la página de VBA y presione la tecla Alt + F11.
- Inserte un módulo.
- Escriba el código mencionado a continuación: -
Función ISOWEEKNUMBER (Indate As Date) Tan largo Dim Dt As Date Dt = DateSerial (Year (Indate - Weekday (Indate - 1) + 4), 1, 3) ISOWEEKNUMBER = Int ((Indate - Dt + Weekday (Dt) + 5 ) / 7) Finalizar función
Explicación del código: -: - En el código anterior, hemos mencionado el nombre de la función con las variables. Y luego establecimos el valor de la fecha y luego definimos los criterios de la función "ISOWEENUMBER".
¿Cómo podemos usar esta función en nuestro archivo de Excel?
- Vaya a la hoja de Excel.
- Ingrese la fórmula en la celda D7.
- = ISOWEEKNUMBER (C7) y presione Entrar.
- La función devolverá la semana para la fecha ingresada en la celda. Ahora, para recuperar el número de semana para cada fecha, copie la misma fórmula en el rango.
Ahora aprenderemos cómo devolver las normas ISO a principios de año en Excel: primer lunes del año.
Esta función básicamente comprobará que 1S t En qué fecha caerá el lunes del año y luego comenzará a calcular el número de semanas a partir de esa fecha. Veamos cómo podemos crear la UDF para este requisito.
Siga los pasos que se indican a continuación:-
- Abra la página de VBA y presione la tecla Alt + F11.
- Inserte un módulo.
- Escriba el código mencionado a continuación:-
Función ISOSTYR (Año como entero) Como fecha Dim WD Como entero Dim NY Como fecha NY = FechaSerial (Año, 1, 1) WD = (NY - 2) Mod 7 Si WD <4 Entonces ISOSTYR = NY - WD Else ISOSTYR = NY - WD + 7 End If End Function
Explicación del código: - En el código anterior, hemos mencionado el nombre de la función con las variables. Y luego habíamos establecido los criterios para las variables y luego habíamos definido la entrada de la fórmula.
Solo necesita proporcionar el año 2001 en este formato y la fórmula le dará 1S t Lunes del año.
Ahora aprenderemos a usar la UDF en un archivo de Excel. Siga los pasos que se indican a continuación: -
- Vaya a la hoja de Excel.
- Ingrese la fórmula en la celda D7.
- = ISOSTYR (C7) y presione Entrar.
- La función devolverá la fecha del 1S t Lunes de la primera semana de Año Nuevo.
- Para devolver la fecha del 1S t Lunes de la primera semana de Año Nuevo, copie la misma fórmula y péguela en el rango.
¿Cómo saber el nombre de la hoja de trabajo y el libro de trabajo usando el VBA en Microsoft Excel?
Siga el código y los pasos dados a continuación:-
- Abra la página de VBA y presione la tecla Alt + F11.
- Inserte un módulo.
- Escriba el código mencionado a continuación:-
Función Nombre de la hoja de trabajo () Nombre de la hoja de trabajo = Rango ("A1"). Nombre del padre Función final
Explicación del código: - En el código anterior, mencionamos el nombre de la función y luego definimos cómo conocer el nombre de la hoja.
Para usar esta fórmula, solo necesita ingresar la fórmula en cualquier celda de esta manera: - = Nombre de la hoja de trabajo (). La función devolverá el nombre de la hoja.
Para crear la función para el nombre del libro de trabajo, siga los pasos y el código que se indican a continuación: -
- Abra la página de VBA presione la tecla Alt + F11.
- Inserte un módulo.
- Escriba el código mencionado a continuación: -
Función Workbookname () Workbookname = ThisWorkbook.Name Fin de la función
Explicación del código: -: - En el código anterior, mencionamos el nombre de la función y luego definimos cómo conocer el nombre del libro de trabajo.
Para usar esta fórmula, solo necesita ingresar la fórmula en cualquier celda de esta manera: - = Nombre del libro de trabajo (). La función devolverá el nombre de la hoja.
¿Cómo extraer la primera y la última palabra de una celda usando VBA en Microsoft Excel?
Tenemos datos en sheet1 en los que tenemos algunas direcciones, por lo que queremos extraer la última y la primera palabra de una oración o celda o un rango creando la función definida por el usuario a través de VBA en Excel.
Primero, escribiremos la función para extraer la primera palabra. Siga los pasos que se indican a continuación:
- Abra la página de VBA presione la tecla Alt + F11.
- Insertar un módulo
Escriba el código mencionado a continuación:-
Función GETFW (Texto como cadena, Separador opcional como variante) Atenuar FW como cadena Si falta (Separador) Entonces Separador = "" Fin Si FW = Izquierda (Texto, InStr (1, Texto, Separador, vbTextCompare)) GETFW = Reemplazar (FW , Separador, "") Finalizar función
Explicación del código: - En el código mencionado anteriormente, hemos mencionado el nombre de la función con las variables. Y luego hemos definido los criterios para extraer la palabra de oración o celda.
Ahora aprenderemos a usar esta fórmula. Siga los pasos que se indican a continuación: -
- Vaya a la hoja de Excel.
- Use esta fórmula en la celda D9.
- = GETFW (C9) y presione Entrar.
- La función devolverá la primera palabra de los datos. Ahora, para recuperar la primera palabra de todas las celdas, copie la misma fórmula en el rango.
Ahora escribiremos el código para extraer la última palabra de la celda. Siga el código mencionado a continuación: -
- Abra la página de VBA presione la tecla Alt + F11.
- Inserte un módulo.
- Escriba el código mencionado a continuación:-
Función GETLW (texto como cadena, separador opcional como variante) Dim LW como cadena si falta (separador) luego separador = "" End If LW = StrReverse (texto) LW = izquierda (última palabra, InStr (1, LW, separador, vbTextCompare) ) GETLW = StrReverse (Reemplazar (LW, Separator, "")) Finalizar función
Ahora aprenderemos a usar esta fórmula. Siga los pasos que se indican a continuación: -
- Vaya a la hoja de Excel.
- Use esta fórmula en la celda D9.
- = GETLW (C9) Presione Enter.
- La función devolverá la última palabra de los datos. Ahora, para recuperar la última palabra de todas las celdas, copie la misma fórmula en el rango.
Estas son las funciones que podemos definir a través de VBA y luego podemos usarlo como fórmula de Excel. Además, podemos crear muchas más funciones definidas por el usuario. Sigue aprendiendo con nosotros, encontraremos fórmulas más complicadas.