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

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

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


person paxdiablo    schedule 13.12.2008    source источник


Ответы (5)


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

ActiveCell.Interior.ColorIndex = 28

or

ActiveCell.Interior.Color = RGB(255,0,0)
person Vinko Vrsalovic    schedule 13.12.2008
comment
В первом примере как узнать, на какой цвет указывает ColorIndex? - person awe; 07.12.2011
comment
@awe - цвета и числа здесь: msdn .microsoft.com / en-us / library / cc296089 (v = office.12) .aspx - person grahamesd; 04.02.2016

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

person Jon Crowell    schedule 18.04.2012

Сделайте быстрый «макрос записи», чтобы увидеть номер цвета, связанный с цветом, который вы ищете (желтое выделение - 65535). Затем сотрите код и поставьте

Sub Name()
Selection.Interior.Color = 65535 '(your number may be different depending on the above)
End Sub
person Matt G    schedule 04.03.2020
comment
Возможно, объясните, почему и как числовой литерал может заменить конструкцию RGB (,,), а также, возможно, выразить литерал в шестнадцатеричном формате Selection.Interior.Color = &H00FFFF, где каждая пара шестнадцатеричных цифр определяет соответственно значение красного, зеленого и синего в диапазоне от &H00 до &HFF. - person Léa Gris; 04.03.2020

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

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

person Community    schedule 30.12.2008

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

person user4700453    schedule 22.03.2015