К сожалению, вы не раскрываете логическое назначение кода, который вы запрашиваете. Поэтому я изобрел один. Если это не соответствует вашим потребностям, вы можете изменить функциональность кода в соответствии с вашими требованиями. Сначала попробуйте.
Установите приведенный ниже код в модуль кода пустой таблицы. Важно, чтобы код был в этом конкретном модуле. В обозревателе проектов редактора VB он определяется по имени.
Private Sub Worksheet_Change(ByVal Target As Range)
' identify the columns containing R, B & G
Const TriggerAddress As String = "A:C"
Dim Rng As Range
Dim Arr As Variant
If Not Application.Intersect(Target, Range(TriggerAddress)) Is Nothing Then
With Target
' ignore changes by Paste action
If .Cells.CountLarge = 1 Then
Set Rng = Range(TriggerAddress).Rows(.Row)
' require 3 numbers
If Application.Count(Rng) = 3 Then
Arr = Rng.Value
Cells(.Row, Rng.Cells.Count + 1).Interior.Color = _
RGB(Arr(1, 1), Arr(1, 2), Arr(1, 3))
End If
End If
End With
End If
End Sub
Константа в верхней части процедуры определяет столбцы, в которых есть числа. Вы просили A: C, и это то, что есть сейчас, но это можно изменить в будущем. Обратите внимание, что вывод будет в горизонтально смежной ячейке, как вы и просили, но это тоже можно изменить.
Код будет реагировать, когда любая ячейка в TriggerColumns будет изменена. Если все 3 ячейки содержат числа, цвет заливки выходной ячейки будет изменен. Не то, чтобы 0 (ноль) было «числом» в этом контексте. Измените любое из 3 существующих чисел, и цвет снова будет сброшен.