El lenguaje VBA nos permite, a través del objeto WorksheetFunction, utilizar las funciones de Excel en nuestras macros.
Este objeto es accesible desde la propiedad del mismo nombre del objeto Application.
Tan sólo tiene un pequeño inconveniente: hay que conocer el nombre de la función en inglés.
En el ejemplo mostrado, el código nos permite calcular la media de un rango de celdas. La función utilizada en Excel sería PROMEDIO, función que en inglés se llama AVERAGE.
La función es accesible como un método del objeto WorksheetFunction. Para conocer más métodos disponibles, puedes consultar Objeto WorksheetFunction de Excel.
La función también redondea el resultado de calcular el promedio al número de decimales indicado.
Para ello utilizaremos la función REDONDEAR de Excel, pero en esta ocasión, a través del método ROUND del objeto Application.
Para conocer más métodos a los que puedes acceder desde este objeto, consulta Objeto Application de Excel.
Function Media(Rango As Range, Optional Decimales As Integer = 2) ' Calcula el promedio de un Rango de celdas y lo redondea al número de Decimales. Dim Resultado As Single Resultado = Application.WorksheetFunction.Average(Rango) Media = Application.Round(Resultado, Decimales) End Function