Предполагается, что name
находится в столбце C, а данные находятся на объекте Sheet1
(при необходимости измените ссылки):
Sub Test()
Dim nameCount As Integer
Dim names() As String
Dim i As Integer
nameCount = -1
ReDim Preserve names(0 To 0)
For i = 2 To Sheet1.UsedRange.Rows.Count
If UBound(Filter(names, Sheet1.Range("C" & i).Value)) = -1 Then
nameCount = nameCount + 1
ReDim Preserve names(0 To nameCount)
names(nameCount) = Sheet1.Range("C" & i).Value
End If
Sheet1.Range("C" & i).EntireRow.Interior.colorIndex = Application.Match(Sheet1.Range("C" & i).Value, names, False)
Next i
End Sub
Приведенное выше строит массив и добавляет элемент каждый раз, когда имявстречается, который еще не находится в массиве.Он использует индекс массива уникального имени как colorIndex.
Поскольку он использует colorIndex, максимальное количество уникальных имен составляет 57. Если у вас есть больше, вы должны использовать значения RGB или что-то еще.
Код протестирован, но никак не оптимизирован и не обрабатывает ошибки вообще.Учитывая попытки, сделанные в «вопросе», этого достаточно, чтобы вы начали.Удачи.