Contare le celle in un intervallo da tutti i fogli di lavoro che utilizzano VBA in Microsoft Excel
È possibile ottenere questo risultato con COUNT () o COUNTA ()
funzione, ma può essere un compito importante se la cartella di lavoro contiene molti fogli di lavoro o se aggiungi frequentemente nuovi fogli di lavoro alla cartella di lavoro.
Per contare un intervallo da diversi fogli di lavoro puoi usare la funzione CONTA.VALORI in questo modo:
COUNTA (Foglio1: Foglio10! A1: A100)
La formula sopra conterà tutte le celle non vuote nell’intervallo A1: A100 nei fogli di lavoro da Sheet1 a Sheet10.
Con la funzione personalizzata di seguito è facile contare le celle in un intervallo da tutti i fogli di lavoro in una cartella di lavoro:
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
Questa funzione viene utilizzata allo stesso modo delle funzioni incorporate del foglio di lavoro.
In Excel 5/95 la variabile InputRange deve essere definita come Variant anziché Range.
Questa funzione può essere facilmente adattata per l’uso con altre funzioni del foglio di lavoro che si desidera utilizzare su tutti i fogli di lavoro in una cartella di lavoro.