尼尔在工作表中经常使用颜色。他知道他可以根据数字RGB值生成颜色(如其他_ExcelTips_问题中所述)。 Neil想要做相反的事情-确定RGB值。他想知道是否有一种返回方法(通过函数或宏)

用于填充单元格的颜色的RGB值。 (Neil希望将实际颜色应用于单元格,而不是任何“替代”颜色,例如由条件格式施加的一种颜色。)

Excel不包含执行此操作的功能,但是如果您只需要检出单个单元格的RGB值,则最简单的方法是执行以下步骤:

。选择用您要检查的颜色格式化的单元格。

。显示功能区的“主页”选项卡。

。单击“填充颜色”工具右侧的“字体”组中的向下箭头。 Excel将显示一个小的调色板和一些其他选项。

。选择更多颜色。 Excel将显示“颜色”对话框。

。确保显示了“自定义”选项卡。 (请参见图1。)

。在对话框的底部,您可以看到单元格中颜色的红色,绿色和蓝色分量的各个值。

。完成后单击“确定”。

如果您需要更频繁地获取值,那么创建自己的用户定义函数是您的最佳选择。您使用的功能取决于实际要返回到工作表的内容。例如,如果要返回传统的六字符十六进制代码来表示RGB颜色,则可以使用以下非常简单的宏:

Function getRGB1(rcell) As String     Dim sColor As String

sColor = Right("000000" & Hex(rcell.Interior.Color), 6)

getRGB1 = Right(sColor, 2) & Mid(sColor, 3, 2) & Left(sColor, 2)

End Function

该宏查看您引用的任何单元格的内部颜色,以正确的顺序放置颜色的十六进制值,然后将字符串返回给Excel。要使用该函数,您只需在工作表中使用以这种方式引用的单元格来调用它:

=getRGB1(B4)

但是,您可能不希望将传统的十六进制代码用于RGB颜色。

如果要获取每种颜色的十进制值,则以下宏将返回:

Function getRGB2(rcell) As String     Dim C As Long     Dim R As Long     Dim G As Long     Dim B As Long

C = rcell.Interior.Color     R = C Mod 256     G = C \ 256 Mod 256     B = C \ 65536 Mod 256     getRGB2 = "R=" & R & ", G=" & G & ", B=" & B End Function

此版本以与getRGB1宏相同的方式调用,该版本返回字符串,例如“ R = 255,G = 204,B = 0”。您还可以根据设置的参数进一步修改宏,使其返回单个值:

Function getRGB3(rcell As Range, Optional opt As Integer) As Long     Dim C As Long     Dim R As Long     Dim G As Long     Dim B As Long

C = rcell.Interior.Color     R = C Mod 256     G = C \ 256 Mod 256     B = C \ 65536 Mod 256

If opt = 1 Then         getRGB3 = R     ElseIf opt = 2 Then         getRGB3 = G     ElseIf opt = 3 Then         getRGB3 = B     Else         getRGB3 = C     End If End Function

要使用该宏,只需在工作表中使用的函数中添加第二个参数,指定所需的内容:

=getRGB3(B4,1)

如果第二个参数为1,则该函数仅返回红色值。如果将第二个参数指定为2,则返回绿色值,而3返回蓝色值。第二个参数的任何其他值(或者如果完全省略)将返回内部颜色的完整十进制值。

如果您不想采用创建宏的路线,或者不只是要在Excel工作表中确定颜色,则可以考虑使用第三方实用程序。看起来很有趣的一个是Instant Eyedropper,它是免费的。您可以在这里找到有关它的更多信息:

http://instant-eyedropper.com

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

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

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