织梦CMS - 轻松建站从此开始!

abg欧博官网|登陆|游戏|

excel中颜色16进制转换为rgb,单元格底色变为该颜色

时间:2025-08-24 12:06来源: 作者:admin 点击: 1 次
excel中颜色16进制转换为rgb,单元格底色变为该颜色答:转换RGB可以使用公式。设置颜色可用代码。如图:单元格B1的公式:=MOD(INT(HEX2DEC(REPLACE(A1,1,1,""))/256 ^0),256)&&q

本回答基于 @mzz9060 的回答上进行修改并添加代码解释

首先简单说下区别,我们日常使用中的计算机颜色是以RGB形式排列的,而EXCEL中则刚好相反,是BGR形式,因此会发生一种情况,我们都知道#FF0000是纯红色,而把同样的颜色代码放到EXCEL里却被识别为了纯蓝色,这显然不符合我们的使用习惯,所以在公式基础上进行倒装

RGB格式的#FF0000:纯红

BGR格式的#FF0000,纯蓝

转换RGB可以使用公式。设置颜色可用代码。

=MOD(INT(HEX2DEC(REPLACE(A1,1,1,""))/256 ^2),256)&","&MOD(INT(HEX2DEC(REPLACE(A1,1,1,""))/256 ^1),256)&","&MOD(INT(HEX2DEC(REPLACE(A1,1,1,""))/256 ^0),256)

公式原理网上都能搜得到,这边就不再提了

返回结果分别代表R,G,B值,以逗号隔开。


接下来具象化颜色代码

工作表右键→查看代码

进入宏编辑


在编辑框中复制以下代码(百度回答模板则代码框找不到)

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then   '获取第一列的值
For Each cell In Target
If cell = "" Then
cell.Offset(0, 2).Interior.Pattern = xlNone 'Offset(单元格行偏移(Y轴), 单元格列偏移(X轴)),当第一列无有效值时设置为无底色
Exit Sub
Else
'以RGB的格式进行获取,固定六位数以每两位进行截断并转换为对应的十进制,就可以以平时的RGB形式展现
cell.Offset(0, 2).Interior.Color = RGB(Application.Hex2Dec(Mid(cell, Len(cell) - 5, 2)), Application.Hex2Dec(Mid(cell, Len(cell) - 3, 2)), Application.Hex2Dec(Right(cell, 2)))
End If
Next
End If
End Sub



mzz9060的代码不能使用的原因在截图里


最后的效果是这样

(责任编辑:)
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:
发布者资料
查看详细资料 发送留言 加为好友 用户等级: 注册时间:2025-08-24 17:08 最后登录:2025-08-24 17:08
栏目列表
推荐内容