Случайный цвет на основе значения ячейки (столбец имен)

Harsha Reddy спросил: 28 апреля 2018 в 09:07 в: excel

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

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

Например: Имя A имеет 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

ThanksHarsha

1 ответ

Есть решение
Rik Sportel ответил: 28 апреля 2018 в 11:39

Предполагая, что name находится в столбце C, и данные находятся в объекте Sheet1 (при необходимости меняйте ссылки):

Sub Test()
Dim nameCount As Integer
Dim names() As String
Dim i As IntegernameCount = -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 или что-то еще.

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

Harsha Reddy ответил: 28 апреля 2018 в 12:14
Спасибо за макрос. Quick Q, с тем же цветом, с большей яркостью и с тусклым цветом.
Rik Sportel ответил: 28 апреля 2018 в 12:57
Я использую colorIndex, что я могу сказать. dmcritchie.mvps.org/excel/colors.htm N.b. если он делает то, что вам нужно, подумайте о том, как поставить ответ на свой вопрос. Если у вас есть вопрос о том, как определить, какой конкретный цвет вы действительно хотите, задайте новый вопрос. - Ты попросил уникального, и это все.