try
Sub test()
Dim ws As Worksheet, r As Range, w, x, i As Long
With CreateObject("System.Collections.SortedList")
For Each ws In Worksheets
If UCase(ws.Name) Like UCase("Site*") Then
For Each r In ws.Range("b2", _
ws.Range("b" & Rows.Count).End(xlUp))
If r.Value <> "" Then
If Not .Contains(r.Value) Then
ReDim w(1 To 3)
w(1) = r.Value
Else
w = .Item(r.Value)
End If
w(2) = w(2) + r(, 2).Value
w(3) = w(3) + r(, 3).Value
.Item(r.Value) = w
End If
Next
End If
Next
Set x = .Clone
End With
With Sheets("master").Cells(1, 1).Resize(, 3)
.CurrentRegion.ClearContents
.Value = [{"Inspector","Pass","Fail"}]
For i = 0 To x.Count - 1
.Offset(i + 1).Value = x.GetByIndex(i)
Next
End With
Set x = Nothing
End Sub
Bookmarks