Recuento de células en un rango de todas las hojas utilizando VBA en Microsoft Excel
Es posible lograr esto con la función COUNT () o COUNTA ()
función, pero eso puede ser una gran tarea si el libro de trabajo contiene muchas hojas de trabajo, o si frecuentemente agrega nuevas hojas de trabajo al libro de trabajo.
Para contar un rango de varias hojas de trabajo, puede usar la función CONTAR de esta manera:
CONTAR (Hoja1: Hoja10! A1: A100)
La fórmula anterior contará todas las celdas que no estén en blanco en el rango A1: A100 en las hojas de trabajo Hoja1 a Hoja10.
Con la función personalizada a continuación, es fácil contar celdas en un rango de todas las hojas de trabajo en un libro de trabajo:
Function CountAllWorksheets(InputRange As Range, InclAWS As Boolean) As Double ' counts the content of InputRange in all worksheets in the workbook Dim ws As Worksheet, TempCount As Long Application.Volatile True ' calculates every time a cell changes TempCount = 0 For Each ws In ActiveWorkbook.Worksheets If InclAWS Then ' include the active worksheet TempCount = TempCount + _ Application.WorksheetFunction.Count(ws.Range(InputRange.Address)) Else ' exclude the active worksheet If ws.Name <> ActiveSheet.Name Then ' not the active worksheet TempCount = TempCount + _ Application.WorksheetFunction.Count(ws.Range(InputRange.Address)) End If End If Next ws Set ws = Nothing CountAllWorksheets = TempCount End Function
Esta función se utiliza de la misma forma que las funciones integradas de la hoja de trabajo.
En Excel 5/95, la variable InputRange debe definirse como Variant en lugar de Range.
Esta función se puede adaptar fácilmente para su uso con otras funciones de hoja de trabajo que desee utilizar en todas las hojas de trabajo de un libro.