Contenido
La función `WorksheetFunction.Aggregate` en VBA se usa para aplicar funciones de agregación, como suma, promedio, recuento, etc., en un rango de celdas mientras se opta por ignorar errores o valores ocultos.
La sintaxis general de `WorksheetFunction.Aggregate` es:
Application.WorksheetFunction.Aggregate(FunctionNum, Options, Ref1, [Ref2], ...)
Donde:
- `FunctionNum`: Es un número que especifica la función de agregación a utilizar. Por ejemplo, 1 para AVERAGE, 2 para COUNT, etc.
- `Options`: Un número que determina qué valores deben ignorarse en el cálculo de la agregación. Por ejemplo, 4 para ignorar nada, 5 para ignorar ocultos y 6 para ignorar errores, etc.
- `Ref1, [Ref2], …`: Son los rangos de celdas sobre los cuales se va a realizar el cálculo.
Aquí tienes algunos ejemplos de cómo utilizar la función `WorksheetFunction.Aggregate` en VBA:
Ejemplo 1: Calcular la suma de un rango ignorando errores
Sub SumWithoutErrors()
Dim result As Double
result = Application.WorksheetFunction.Aggregate(9, 6, Range("A1:A10"))
MsgBox "La suma de las celdas A1:A10 (ignorando errores) es: " & result
End Sub
En este caso, el número de función 9 representa `SUM` y el 6 indica que deseamos ignorar los errores.
Ejemplo 2: Calcular el promedio de un rango ignorando celdas ocultas
Sub AverageWithoutHiddenCells()
Dim result As Double
result = Application.WorksheetFunction.Aggregate(1, 5, Range("A1:A10"))
MsgBox "El promedio de las celdas A1:A10 (ignorando celdas ocultas) es: " & result
End Sub
Aquí, el número de función 1 representa `AVERAGE` y el 5 indica que deseamos ignorar celdas ocultas.
Ejemplo 3: Calcular el recuento de números en un rango, ignorando los errores y los ocultos
Sub CountNumbersExcludingErrorsAndHidden()
Dim result As Double
result = Application.WorksheetFunction.Aggregate(2, 7, Range("A1:A10"))
MsgBox "El recuento de números en A1:A10 (ignorando errores y celdas ocultas) es: " & result
End Sub
Donde el número de función 2 es para `COUNT`, y el 7 es para ignorar tanto errores como celdas ocultas.
Recuerda que debes tener en cuenta el tipo de datos que devuelve la función de agregación seleccionada. Por ejemplo, si esperas una suma o promedio que pueda ser un número decimal, deberías declarar tu variable de resultado como `Double`. Si solo necesitas un contador que siempre sea un entero, puedes usar `Long`.
Referencia para valores de `FunctionNum` y `Options`:
- Los valores permisibles para `FunctionNum` van del 1 al 19, más algunos adicionales del 101 al 111 que se usan para funciones de agregación específicas con ciertas características.
- Los valores permisibles para `Options` van del 0 al 7, donde principalmente 4 ignora nada, 5 ignora celdas ocultas, 6 ignora errores, y 7 ignora celdas ocultas y errores.