En ocasiones es necesario contar con una UDF que reciba un rangos de celdas como parámetro, para ello se podría emplear alguno de los siguientes ejemplos:
En el primer caso se hace uso de la Ubound, el cual sirve para determinar el tamaño de cada dimensión empleada, mientras que el segundo ejemplo puede resultar mas sencillo de recordar, el cual no requiere de una función para determinar el número de filas y columnas que se reciben como parámetro. El tercer ejemplo es aún mas sencillo y hace uso de una variable objeto.
Estos ejemplo de UDF con rangos pueden ser reutilizados para fórmulas mas complejas.
Public Function misuma2(datos As Range)
Dim vRange As Variant
vRange = datos
'número de filas
numfilas = UBound(vRange, 1)
'número de columnas
numcolumnas = UBound(vRange, 2)
For x = 1 To numfilas
For y = 1 To numcolumnas
acumula = acumula + datos(x, y)
Next
Next
misuma2 = acumula
End Function
Public Function misuma3(datos As Range)
'número de filas
numfilas = datos.Rows.Count
'número de columnas
numcolumnas = datos.Columns.Count
For x = 1 To numfilas
For y = 1 To numcolumnas
acumula = acumula + datos(x, y)
Next
Next
misuma3 = acumula
End Function
Function sumarango(rng As Range)
Dim cell As Range
For Each cell In rng
sumarango = sumarango + cell.Value
Next cell
End Function
Function sumarango2(rng As Range)
Dim cell As Range
For Each cell In rng
acumula = acumula + cell.Value
Next cell
sumarango2 = acumula
End Function
Algunos ejemplos de funciones con rangos de celdas:
- Identificar color de celda en Excel
- Calcular el coeficiente de variacion de una lista de datos
- Función para Sumar Datos por Color
- Función para obtener la Desviación Estandar con Ponderaciones Exponenciales
- Contar el número de números primos dentro de un rango
- Función para Evaluación de Riesgo Ambiental
- Sumar solo celdas en Negritas
- UDF - bonificación
11/08/2017 a las 6:05 pm
Hola, me gustaría saber si es posible que al abrir un nuevo libro y escribir el nombre de mi UDF aparezca, como aparecen las funciones predeterminadas.
Es decir, puedo usar mis UDF el problema es que al escribir =MiFormula() no me aparece en Excel (Como si no existiera)
26/01/2020 a las 5:48 pm
Hola, me gustó mucho esta página. Quisera saber si se pueden invocar FDU que devuelvan Objetos. Creé una pequeña función que devuelve las propiedades de un rango (mínimo, máximo, número de elementos, diferencia entre mínimlo y máximo) en un Objeto al que llamé Dominio. Todo está bien desde El editor de VBA, pero no sé cómo invocarla desde Excel
21/09/2021 a las 4:31 pm
hola, muy buena página. Quisiera saber si se puede hacer una FDU que te regrese un vector o matriz de resultados?