Đếm ô trong một phạm vi từ tất cả các trang tính bằng VBA trong Microsoft Excel
Có thể đạt được điều này với COUNT () hoặc COUNTA ()
nhưng đó có thể là một nhiệm vụ lớn nếu sổ làm việc chứa nhiều trang tính hoặc nếu bạn thường xuyên thêm trang tính mới vào sổ làm việc.
Để đếm một phạm vi từ một số trang tính, bạn có thể sử dụng hàm COUNTA như sau:
COUNTA (Sheet1: Sheet10! A1: A100)
Công thức trên sẽ đếm tất cả các ô không trống trong phạm vi A1: A100 trong các bảng tính từ Sheet1 đến Sheet10.
Với hàm tùy chỉnh bên dưới, thật dễ dàng để đếm các ô trong một phạm vi từ tất cả các trang tính trong sổ làm việc:
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
Hàm này được sử dụng giống như các hàm trang tính tích hợp sẵn.
Trong Excel 5/95, biến InputRange phải được định nghĩa là Biến thể thay vì Phạm vi.
Có thể dễ dàng điều chỉnh chức năng này để sử dụng với các chức năng trang tính khác mà bạn muốn sử dụng trên tất cả các trang tính trong sổ làm việc.