Деннис хочет заполнить три ячейки (A1: A3) значениями RGB и сделать так, чтобы другая ячейка (C1) показывала цвет на основе этих значений. Он задается вопросом, есть ли простой способ сделать это.

Самый простой способ сделать это — использовать макрос, который получает значения в A1: A3 и затем изменяет цвет ячейки C1 на основе этих значений.

В идеале макрос должен проверять, находятся ли значения в исходных ячейках в диапазоне от 0 до 255. Для этой цели отлично подходит следующий макрос:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("A1:A3")) Is Nothing Then         lRed = Abs(Range("A1").Value) Mod 256         lGreen = Abs(Range("A2").Value) Mod 256         lBlue = Abs(Range("A3").Value) Mod 256

Range("C1").Interior.Color = RGB(lRed, lGreen, lBlue)

End If End Sub

Обратите внимание, что этот макрос следует добавить в код рабочего листа, на котором существуют ячейки. (Просто щелкните правой кнопкой мыши вкладку листа и выберите «Просмотреть код», затем добавьте туда макрос.) Это обработчик событий, который автоматически запускается каждый раз, когда в ячейке A1, A2 или A3 происходит изменение.

Значения в этих ячейках находятся в диапазоне от 0 до 255, если взять абсолютное значение содержимого ячейки и использовать остаток (по модулю)

деления на 256.

Макрос работает только тогда, когда вы вручную изменяете значение в диапазоне A1: A3 (ваши значения RGB). Если значения в этом диапазоне являются результатом формул, это не будет работать должным образом, потому что вы не изменяете ячейки вручную. В этом случае вам следует использовать эту более простую модификацию макроса:

Private Sub Worksheet_Change(ByVal Target As Range)

lRed = Abs(Range("A1").Value) Mod 256     lGreen = Abs(Range("A2").Value) Mod 256     lBlue = Abs(Range("A3").Value) Mod 256

Range("C1").Interior.Color = RGB(lRed, lGreen, lBlue)

End Sub

Эта версия обновляет цвет каждый раз, когда что-то изменяется на листе, независимо от того, где происходит изменение.

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (9092) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:

link: / excel-Отображение_RGB_Colors_in_a_Cell [Отображение цветов RGB в ячейке].