Последнее обновление: август 2021 г.; Microsoft Excel 365, 2019, 2016.
В сегодняшнем руководстве по VBA для автоматизации Excel мы узнаем, как программно изменить цвет ячейки на основе значения ячейки.
Мы можем использовать эту технику, например, при разработке простой панели мониторинга состояния.
Настраивать
Если вы еще не занимаетесь разработкой в Excel, рекомендуем ознакомиться с нашим вводным руководством по макросам Excel . В частности, вам нужно убедиться, что вкладка «Разработчик» доступна на вашей ленте Microsoft Excel, так как вы будете использовать ее для написания простого кода.
- Откройте Microsoft Excel. Обратите внимание, что код, представленный в этом руководстве, должен работать в Excel 2007 и более поздних версиях.
- На пустой лист добавьте следующую таблицу:

- Теперь идите вперед и определите именованный диапазон, нажав: Formulas>>Define Name

Изменение внутреннего цвета ячейки на основе значения с помощью Cell.Interior.Color
- Нажмите на запись « Разработчик » на ленте.
- Нажмите Visual Basic или Alt+F11, чтобы открыть редактор VBA для разработчиков.
- Затем выделите рабочий лист, на котором вы хотите запустить свой код. Или выберите модуль с вашим кодом VBA.
- Вставьте этот код. В нашем примере мы изменим внутренний цвет диапазона ячеек на определенные значения RGB ячейки, соответствующие красному, желтому и зеленому цветам.
- В частности, мы используем метод Excel VBA Cell.Interior.Color и передаем соответствующее значение RGB или индекс цвета.
Sub Color_Cell_Condition()
Dim MyCell As Range
Dim StatValue As String
Dim StatusRange As Range
Set StatusRange = Range("Status")
For Each MyCell In StatusRange
StatValue = MyCell.Value
Select Case StatValue
Case "Progressing"
MyCell.Interior.Color = RGB(0, 255, 0)
Case "Pending Feedback"
MyCell.Interior.Color = RGB(255, 255, 0)
Case "Stuck"
MyCell.Interior.Color = RGB(255, 0, 0)
End Select
Next MyCell
End Sub
- Запустите свой код — либо нажав F5, либо «Выполнить» >> «Выполнить Sub / UserForm».
- Вы заметите, что панель состояния была заполнена, как показано ниже:

- Сохраните свой код и закройте редактор VBA.