Условное форматирование. Увеличение кол-ва условий

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Дмитрий Д
Сообщения: 22
Зарегистрирован: 18 янв 2005, 16:03

Добрый день! У меня возникла следующая проблема.
Условное форматирование в Excell позволяет задать только 3 условия. Можно ли увеличить количество условий? И как это сделать?

Заранее спасибо
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Нельзя.
Можно только написать форматирующий макрос. Но его прийдется каждый раз запускать, чтобы он просканировал всю таблицу и отформатировал ее в соответствии с текущими значениями.

Если условное форматирование качается только цвета шрифта, то дополнительно к трем условиям из Условного форматирования можно использовать числовые форматы, но там тоже не более трех условий нанизывается.

Делаем Формат/Ячейки/Число/(все форматы) и в поле Тип пишем:

[Синий][<100]Основной;[Красный][<200]Основной;[Зеленый]Основной

Вместо "Основной" можно использовать друие форматы, напрмиер "0.00"
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

Да, действительно более трёх условий при применении условного форматирования задать нельзя, но можно для разных дипазонов (как правило столбцов) задать разные параметры. В некоторых случаях это и есть выход из создавшегося положения.

P.S. Будем надеяться, что этот совет применим и к Вашему случаю.
Дмитрий Д
Сообщения: 22
Зарегистрирован: 18 янв 2005, 16:03

К сожалению, мне нужно для одного диапозона 6 условий. Причем, условия - это формулы ссылающиеся на другие ячейки
Дмитрий Д
Сообщения: 22
Зарегистрирован: 18 янв 2005, 16:03

Никак не могу понять, как сделать чтобы в макросе value показывал диапозон
У меня есть вот это

For myRow = 5 To 45
For myColumn = 5 To 18
If Worksheets("1").Cells(myRow, myColumn).Value = 1 Then
Worksheets("1").Cells(myRow, myColumn).Interior.ColorIndex = 6
End If

Но, я хочу, чтобы value был равен не 1, а диапозону от 1,2 до 5,6
Как это сделать?
Заранее спасибо
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

Вы можете использовать примерно такой вариант, при желании и абсолютной уверенности что в исходном диапазоне находятся только числовые значения этот код можно сократить :

Код: Выделить всё

For Each iCell In Worksheets("1").Range("E5:R45")

If IsNumeric(iCell.Value) = True Then
If iCell.Value >= 1.2 And iCell.Value <= 5.6 Then
   iCell.Interior.ColorIndex = 6
End If
End If

Next
Дмитрий Д
Сообщения: 22
Зарегистрирован: 18 янв 2005, 16:03

Спасибо
Ответить