Обязательно ли вы используете Conditional Formatting
или вы открыты для других предложений? Когда я читал ваш пост (перед тем, как посмотреть примеры кода), я кое-что задумал.
Мне не нравится заниматься условным форматированием; пара небольших изменений на листе, и одно созданное вами правило в итоге становится набором из 5-6 правил, применяемых к меньшим диапазонам. Поэтому мне обычно нравится, когда al oop делает все форматирование для меня.
С учетом всего сказанного, скажем, мы перебираем столбец A:
For i = 2 to iLastRow (or whatever, 200, etc.)
[ws].range("A" & i).interior.color = 16777215 'changing it to 'no fill' (in case it was colored before)
If [ws].range("A" & i) [rest of the condition] Then
[ws].range("A" & i).Interior.Color = [color no.]
end if
next i
Это .Interior.Color
также работает с .Cells(x,y)
. Конечно, он не будет динамически меняться при каждом изменении содержимого листа, но А) я обнаружил, что это дало мне меньше головной боли, чем условное форматирование, и Б) Вы можете поместить это форматирование l oop в другой Sub
, который ваши основные Sub
всего Call
s, и добавьте кнопку, чтобы активировать только эту подпрограмму форматирования, чтобы вы могли в любое время вручную применить условное форматирование. Или вы можете добавить этот код форматирования в Sub Worksheet_OnChange
.