可以通过内置的COUNT()或COUNTA()

来实现函数,但是如果工作簿包含许多工作表,或者您经常向工作簿中添加新的工作表,那将是一项艰巨的任务。

要从几个工作表中计算范围,可以使用COUNTA函数,如下所示:

COUNTA(Sheet1:Sheet10!A1:A100)

上面的公式将计算工作表Sheet1到Sheet10中A1:A100范围内的所有非空白单元格。

使用下面的自定义功能,可以轻松计算工作簿中所有工作表中某个范围内的单元格:

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。

可以轻松地将此功能与希望在工作簿中所有工作表上使用的其他工作表功能一起使用。