Descarga el libro de trabajo de ejemplo
Este tutorial le mostrará cómo contar o sumar celdas de un cierto color de fondo usando VBA.
Considere el siguiente rango en Excel.
No hay una función de Excel incorporada para contar las celdas de colores. En su lugar, debemos crear una función definida por el usuario utilizando VBA.
Contar celdas: crear una función personalizada de VBA
Contar cuántas celdas son de un cierto color usando VBA es una cuestión de crear una función definida por el usuario (UDF) que recorrerá todas las celdas en el rango y determinará si el color de fondo de cada celda coincide con el color de fondo que usted están probando y luego usando esa función en la hoja de cálculo de Excel.
En VBA, creamos una función para contar las celdas seleccionadas.
12345678910111213141516 | Función CountCellsByColor (rng como rango, ColorCell como rango) como dobleDim dblCount como dobleDim rngCell como rango'Recorra cada celda en el rangoPara cada rngCell en rng'compruebe si el color interior es del mismo color que la celda que ha seleccionadoSi rngCell.Interior.Color = ColorCell.Interior.Color EntoncesSi IsNumeric (rngCell.Value) = True Entonces'aumente el recuento en 1 si el color es correcto.dblCount = dblCount + 1Terminara siTerminara sipróximo'Devuelve el valor a ExcelCountCellsByColor = dblCountFunción final |
Luego use esta función en la hoja de trabajo para devolver el valor.
1 | = CountCellsByColor (B2: E10, G4) |
- Haga clic en la celda naranja en G4 y haga clic en Insertar función.
- Seleccione Usuario definido como categoría y, a continuación, seleccione CountCellsByColor como función a utilizar.
- Hacer clic OK.
- Resalte el rango que contiene todas las celdas coloreadas.
- Selecciona el ColorCelly luego haga clic en OK.
Repita el proceso para contar las celdas con un color de fondo verde.
1 | = CountCellsByColor (B2: E10, G5) |
Suma de celdas: cree una función de VBA personalizada
Creamos una función personalizada similar en VBA para sumar los valores de las celdas de cierto color.
12345678910111213141516 | Función SumCellsByColor (rng como rango, ColorCell como rango) como dobleDim dblSum como dobleDim rngCell como rango'Recorra cada celda en el rangoPara cada rngCell en rng'compruebe si el color interior es del mismo color que la celda que ha seleccionadoSi rngCell.Interior.Color = ColorCell.Interior.Color EntoncesSi IsNumeric (rngCell.Value) = True Entonces'agregue el valor a su variable si el color es correctodblSum = dblSum + rngCell.ValueTerminara siTerminara sipróximo'Devuelve el valor a ExcelSumCellsByColor = dblSumFunción final |
Luego, una vez más, usaríamos esta función en la Hoja de trabajo para resumir las celdas requeridas.
1 | = SumCellsByColor (B2: E10, G7) |