Use a collection object if you need a list of unique elements. In this case, you want to calculate how many times something is duplicated, so in our error detection procedure we get the current number of duplicates, add 1 to it, then drop the item from the collection and add it again with a new counter.
Dim i As Integer Dim myCol As New Collection Dim IncrementedValue As Integer 'Because you start on row 3, we have to add 2 to the row count For i = 3 To Sheet1.UsedRange.Rows.Count + 2 On Error GoTo DupFound myCol.Add 1, Sheet1.Cells(i, 1).Text On Error GoTo 0 Next 'Because you start on row 3, we have to add 2 to the row count For i = 3 To Sheet1.UsedRange.Rows.Count + 2 Sheet1.Cells(i, 6).Value = myCol.Item(Sheet1.Cells(i, 1).Text) Next Exit Sub DupFound: IncrementedValue = myCol.Item(Sheet1.Cells(i, 1).Text) + 1 myCol.Remove Sheet1.Cells(i, 1).Text myCol.Add IncrementedValue, Sheet1.Cells(i, 1).Text Resume Next
source share