¿cómo utilizar la función de hoja de cálculo de vba?
Notas clave
- Puede utilizar la propiedad WorksheetFunction para acceder a las funciones de la hoja de trabajo y utilizarlas en una macro.
Cómo utilizar una función de hoja de trabajo en VBA al escribir una macro
Utilice los siguientes pasos para utilizar una función de hoja de trabajo en VBA.
- Primero, especifique la celda en la que desea insertar los valores devueltos por la función.
- Después de eso, use un signo igual (=) y escriba Application.WorksheetFunction (como ya puede hacerlo en la aplicación Excel, solo puede usar WorksheetFunction).
- A continuación, debes ingresar un punto (.), y en el momento en que lo hagas, obtendrás una lista de funciones que tienes en la hoja de cálculo.
- Desde aquí, usemos la función TextJoin para unir el texto en las celdas A1 y B1. Así de simple, usas una función en la hoja de cálculo; cuando ingresa paréntesis iniciales, le muestra los argumentos que necesita especificar en la celda.
- Como puede ver en la captura de pantalla anterior, le muestra el argumento que necesita especificar, pero no el nombre de los argumentos. Por eso es necesario conocer los argumentos antes de utilizarlos. Estos son los argumentos que debe utilizar en TextJoin.
- Ahora ingresemos argumentos en la función.
- delimitar: » «
- ignorar_empty: Verdadero
- texto1: Rango (“A1”)
- texto2: Rango(“B1”)
Aquí está el código completo.
Sub MyMacro() Range("A1") = _ Application.WorksheetFunction.TextJoin _ (" ", True, Range("A2"), Range("A3")) End Sub
Hay un total de 387 funciones de hoja de trabajo que puede utilizar en VBA. Pero hay algunas funciones (Ejemplo: IZQUIERDA ) que no están disponibles.
¿Razón? Hay funciones integradas en VBA que puede utilizar al escribir código VBA. Veamos si desea utilizar un cuadro de mensaje para obtener el valor de una función. Digamos que desea obtener el valor máximo del rango denominado «myValues».
El código sería:
Sub MyMacro() MsgBox Prompt:=WorksheetFunction.Max(Range("myValues")) End Sub
Y así es como aparece un cuadro de mensaje:
Aplicación.Función de hoja de trabajo frente a aplicación
Hay dos formas diferentes de referirse a una función de hoja de trabajo. A continuación se muestran las dos líneas de código diferentes que realizan la misma actividad.
Sub MyMacro() MsgBox Prompt:= _ Application.WorksheetFunction.Max(Range("myValues")) MsgBox Prompt:= _ Application.Max(Range("myValues")) End Sub
Pero existe una ventaja al utilizar el segundo método. Devuelve un código de error en lugar de mostrar directamente el error.