可通过自定义VBA函数ColorCode快速获取单元格填充颜色的RGB代码,如“RGB(255,192,0)”,操作包括打开VBA编辑器、插入模块、粘贴代码、在工作表中输入=ColorCode(A1)调用;还可使用ColorIndexCode获取调色板索引号,或用SetCellColorByRGB子过程反向设置颜色。

如果您在Excel表格中需要快速获取单元格填充颜色的RGB代码,但Excel原生函数无法直接返回底色值,则可通过自定义VBA函数实现。以下是具体操作步骤:
一、插入自定义VBA函数ColorCode
该函数用于读取指定单元格的背景填充颜色,并以标准RGB格式(如“RGB(255,192,0)”)返回字符串,便于识别与复用。
1、按 Alt + F11 打开VBA编辑器。
2、在左侧“工程资源管理器”中右键任意工作簿名称,选择“插入” → “模块”。
3、在新建模块窗口中粘贴以下代码:
Function ColorCode(cell As Range) As String
Dim r As Long, g As Long, b As Long
r = cell.Interior.Color Mod 256
g = (cell.Interior.Color \ 256) Mod 256
b = (cell.Interior.Color \ 65536) Mod 256
ColorCode = "RGB(" & r & "," & g & "," & b & ")"
End Function
二、在工作表中调用ColorCode函数
该方法将VBA函数作为工作表函数使用,无需编写宏按钮或事件,支持实时刷新与拖拽填充。
1、关闭VBA编辑器,返回Excel工作表界面。
2、在任意空白单元格中输入公式:=ColorCode(A1),其中A1为待查询底色的单元格地址。
3、按回车确认,单元格即显示类似“RGB(255,192,0)”的字符串结果。
4、可对其他单元格批量应用:选中含公式的单元格,拖动填充柄至目标区域。
三、使用ColorIndex获取调色板索引号
当需兼容Excel早期版本或匹配内置调色板编号时,可改用Interior.ColorIndex属性,返回1–56范围内的标准索引值,对应Excel预设颜色库。
1、在新模块中插入以下函数:
Function ColorIndexCode(cell As Range) As Variant
If cell.Interior.ColorIndex = -4142 Then
ColorIndexCode = "无填充"
Else
ColorIndexCode = cell.Interior.ColorIndex
End If
End Function
2、在工作表中输入:=ColorIndexCode(B2),即可返回B2单元格的调色板编号或“无填充”提示。
四、通过RGB值反向设置单元格底色
该方法用于验证提取结果的准确性,或根据已知RGB值批量还原颜色,适用于模板比对与样式同步场景。
1、在模块中添加设置颜色的子过程:
Sub SetCellColorByRGB(rng As Range, r As Long, g As Long, b As Long)
rng.Interior.Color = RGB(r, g, b)
End Sub
2、按 Alt + F8 打开宏对话框,选择SetCellColorByRGB,点击“运行”。
3、在弹出参数窗口中依次输入目标单元格引用(如C5)、R值、G值、B值,例如:C5, 255, 192, 0。










