Количество ячеек в диапазоне от всех рабочих листов с помощью VBA в Microsoft Excel
Этого можно добиться с помощью встроенных функций COUNT () или COUNTA ()
функция, но это может быть большой задачей, если книга содержит много листов или если вы часто добавляете в книгу новые листы.
Чтобы подсчитать диапазон из нескольких листов, вы можете использовать функцию COUNTA следующим образом:
СЧЁТ (Лист1: Лист10! A1: A100)
Приведенная выше формула будет подсчитывать все непустые ячейки в диапазоне A1: A100 на листах Sheet1 до Sheet10.
С помощью настраиваемой функции ниже легко подсчитать ячейки в диапазоне от всех листов в книге:
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
Эта функция используется так же, как и встроенные функции рабочего листа.
В Excel 5/95 переменная InputRange должна быть определена как Variant вместо Range.
Эту функцию можно легко адаптировать для использования с другими функциями рабочего листа, которые вы хотите использовать на всех листах в книге.