计数细胞在Excel中使用VBA的所有工作表的范围
可以通过内置的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。
可以轻松地将此功能与希望在工作簿中所有工作表上使用的其他工作表功能一起使用。