Ответ 1
Вы можете использовать либо:
ActiveCell.Interior.ColorIndex = 28
или
ActiveCell.Interior.Color = RGB(255,0,0)
Как часть программы VBA, я должен установить цвета фона определенных ячеек зеленым, желтым или красным цветом в зависимости от их значений (в основном, монитор здоровья, где зеленый цвет в порядке, желтый - пограничный, а красный - опасный).
Я знаю, как установить значения этих ячеек, но как установить цвет фона.
Вы можете использовать либо:
ActiveCell.Interior.ColorIndex = 28
или
ActiveCell.Interior.Color = RGB(255,0,0)
Это прекрасный пример того, где вы должны использовать макрорекордер. Включите рекордер и установите цвет ячеек через пользовательский интерфейс. Остановите рекордер и просмотрите макрос. Он будет генерировать кучу постороннего кода, но он также покажет вам синтаксис, который работает на то, что вы пытаетесь выполнить. Разделите то, что вам не нужно, и измените (если вам нужно) то, что осталось.
или, альтернативно, вы не могли бы его кодировать и использовать функцию "условного форматирования" в Excel, которая установит цвет фона и цвет шрифта на основе значения ячейки.
Здесь есть только две переменные, поэтому установите по умолчанию желтый, а затем перезапишите, когда значение больше или меньше ваших пороговых значений.
Это не работает, если вы используете функцию, но работает, если вы Sub. Однако вы не можете вызвать sub из ячейки, используя формулу.
Для colorindex я перехожу в http://dmcritchie.mvps.org/excel/colors.htm. Когда я записал раскраску ячейки в Excel 2011, все, что я получил, было то, что ячейка была выбрана. Обратите внимание, что Excel 2011 и 2010 не имеют одинаковой таблицы colorindex. См. Мою веб-страницу http://uhaweb.hartford.edu/ltownsend/excel.html#colorindex для сравнения.