oshizelly
![](http://forum.ru-board.com/board/avatars/mrmorton.gif)
Gold Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору vlth 28-06-2010 18:55 Цитата: Цитата: Если очень упрощенно: в столбце числовые значения, допустим, от 1 до 9, надо, чтобы каждое число отображалось своим цветом. Первая мысль, конечно, условное форматирование, но Excel 2003 не позволяет задать более 3-х условий, а в этом примере их нужно 9. | В модуле листа: Код: Private Sub Worksheet_Change(ByVal Target As Range) Dim c As Range If Not Intersect(Target, Range(Me.Cells(1, 1), Me.Cells(9, 1))) Is Nothing Then For Each c In Target With c.Font Select Case c Case 1: .ColorIndex = c + 2 Case 2: .ColorIndex = c + 2 Case 3: .ColorIndex = c + 2 Case 4: .ColorIndex = c + 2 Case 5: .ColorIndex = c + 2 Case 6: .ColorIndex = c + 2 Case 7: .ColorIndex = c + 2 Case 8: .ColorIndex = c + 2 Case 9: .ColorIndex = c + 2 Case Else: .ColorIndex = xlAutomatic End Select End With Next End If End Sub | Пояснение: здесь для каждой ячейки, содержащей натур. число от 1 до 9, задаётся индекс цвета шрифта на 2 больше содержимого. | В ходе дальнейшей работы выяснилось, что всё-таки этот первый пример был просто частный случай. В общем же случае всё сложнее: определенный формат необходимо присвоить не конкретному значению, а интервалу значений. Причем число этих интервалов опять-таки больше 3-х. Скажем, применить разное форматирование к ячейкам со значениями в интервале от 0 до 100, от 101 до 200, от 201 до 300 и от 301 до 400. Вариант с прибавлением точного числа "c + ??" здесь явно не работает даже в качестве отправной точки. А в другом случае всё ещё сложнее, там вообще не числа, а текст: "яблоки", "груши", "дыни" и "арбузы". Если бы текст в ячейках был идентичен, то, наверное, можно было бы как-то посчитать числовое значение текста "яблоко" и использовать приведенный выше принцип "Case 1: .ColorIndex = c + 2" , хотя я пока не очень понимаю, как именно. Но главная засада в том, что текст во всех ячейках варьируется, скажем, "яблоки зелёные" и "яблоки мочёные" надо отформатировать одинаково. И то же самое с датами, там опять-таки 12 интервалов (по числу месяцев), и надо, чтобы форматирование дат одного месяца отличалось от дат остальных месяцев. |