случайный цвет в зависимости от значения ячейки (столбец Имя) - PullRequest
0 голосов
/ 22 мая 2018

Мне нужна формула или макрос, который может дать мне вывод ниже.

Если вы видите пример ниже.Мне нужна цветная строка на основе столбца Имя.

Например: Имя А имеет 2 записи, обе строки должны быть выделены одним цветом.Я могу сделать это с помощью условного форматирования, но у меня слишком много значений в столбце name , и это основная причина, по которой я ищу макрос.

INC-No  Host    Name
INC1    x1      e1
INC2    x2      e2
INC3    x3      e3
INC4    x4      e2
INC5    x5      e5
INC6    x6      e1
INC7    x7      e3

Спасибо, Харша

1 Ответ

0 голосов
/ 22 мая 2018

Предполагается, что 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 или что-то еще.

Код протестирован, но никак не оптимизирован и не обрабатывает ошибки вообще.Учитывая попытки, сделанные в «вопросе», этого достаточно, чтобы вы начали.Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...