Zählen von Zellen in einem Bereich von allen Arbeitsblatt mit VBA in Microsoft Excel
Dies ist mit dem integrierten COUNT () oder COUNTA ()
möglich Funktion, aber das kann eine große Aufgabe sein, wenn die Arbeitsmappe viele Arbeitsblätter enthält oder wenn Sie der Arbeitsmappe häufig neue Arbeitsblätter hinzufügen.
Um einen Bereich aus mehreren Arbeitsblättern zu zählen, können Sie die COUNTA-Funktion folgendermaßen verwenden:
COUNTA (Blatt1: Blatt10! A1: A100)
Die obige Formel zählt alle nicht leeren Zellen im Bereich A1: A100 in den Arbeitsblättern Blatt1 bis Blatt10.
Mit der folgenden benutzerdefinierten Funktion ist es einfach, Zellen in einem Bereich aus allen Arbeitsblättern in einer Arbeitsmappe zu zählen:
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
Diese Funktion wird genauso verwendet wie integrierte Arbeitsblattfunktionen.
In Excel 5/95 muss die Variable InputRange als Variante anstelle von Bereich definiert werden.
Diese Funktion kann problemlos für die Verwendung mit anderen Arbeitsblattfunktionen angepasst werden, die Sie für alle Arbeitsblätter in einer Arbeitsmappe verwenden möchten.