Dennis希望用RGB值填充三个单元格(A1:A3),并让另一个单元格(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_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

链接:/ excelribbon-ExcelTipsMacros [点击此处在新的浏览器标签中打开该特殊页面]。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(9092)适用于Office 365中的Microsoft Excel 2007、2010、2013、2016、2019和Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本:

链接:/ excel-Showing_RGB_Colors_in_a_Cell [在单元格中显示RGB颜色]。