Как установить цвет фона ячеек Excel с помощью VBA?

Как часть программы VBA, я должен установить цвета фона определенных ячеек зеленым, желтым или красным цветом в зависимости от их значений (в основном, монитор здоровья, где зеленый цвет в порядке, желтый - пограничный, а красный - опасный).

Я знаю, как установить значения этих ячеек, но как установить цвет фона.

Ответы

Ответ 1

Вы можете использовать либо:

ActiveCell.Interior.ColorIndex = 28

или

ActiveCell.Interior.Color = RGB(255,0,0)

Ответ 2

Это прекрасный пример того, где вы должны использовать макрорекордер. Включите рекордер и установите цвет ячеек через пользовательский интерфейс. Остановите рекордер и просмотрите макрос. Он будет генерировать кучу постороннего кода, но он также покажет вам синтаксис, который работает на то, что вы пытаетесь выполнить. Разделите то, что вам не нужно, и измените (если вам нужно) то, что осталось.

Ответ 3

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

Здесь есть только две переменные, поэтому установите по умолчанию желтый, а затем перезапишите, когда значение больше или меньше ваших пороговых значений.

Ответ 4

Это не работает, если вы используете функцию, но работает, если вы Sub. Однако вы не можете вызвать sub из ячейки, используя формулу.

Ответ 5

Для colorindex я перехожу в http://dmcritchie.mvps.org/excel/colors.htm. Когда я записал раскраску ячейки в Excel 2011, все, что я получил, было то, что ячейка была выбрана. Обратите внимание, что Excel 2011 и 2010 не имеют одинаковой таблицы colorindex. См. Мою веб-страницу http://uhaweb.hartford.edu/ltownsend/excel.html#colorindex для сравнения.