You could do it through arrays or collections, but this should be a bit easier to follow:
Sub CountNames()
Dim rngUnique As Range
Dim rngSource as Range
Dim rngCell As Range
Dim lngCount As Long
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
Columns("F:F").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Columns( _
"M:M"), Unique:=True
With ActiveSheet
Set rngUnique = .Range("M1", .Range("M1").End(xlDown))
Set rngSource = .Range("F1", .Range("F1").End(xlDown))
End With
For Each rngCell In rngUnique
lngCount = Application.WorksheetFunction.CountIf(rngSource, rngCell)
rngCell.Offset(, 1) = lngCount
Next rngCell
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
Bookmarks