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

excel中颜色16进制转换为rgb,单元格底色变为该颜色我在表格中写入了一个颜色代码#ff0000,怎么在第二列转换成rgb,第三列单元格底色变为这个颜色?... excel中颜色16进制转换为rgb,单元格底色变为该颜色我在表格中写入了一个颜色代码#ff0000,怎么在第二列转换成rgb,第三列单元格底色变为这个颜色? 展开
 我来答
mzz9060
2017-11-13 · TA获得超过1326个赞
知道小有建树答主
回答量:773
采纳率:84%
帮助的人:201万
展开全部

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

如图:单元格B1的公式:

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

返回结果分别代表R,G,B值。

C1单元格颜色可随A1的值改变而改变,具体实现方法,右键工作表标签--"查看代码",然后在窗口中贴入下面代码:

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
                Exit Sub
            Else
                cell.Offset(0, 2).Interior.Color = Application.Hex2Dec(Right(cell, Len(cell) - 1))
            End If
        Next
    End If
End Sub

之后可以通过改变A1值得到相应结果。

最初的地方
2020-08-08 · TA获得超过3062个赞
知道小有建树答主
回答量:959
采纳率:75%
帮助的人:446万
展开全部

本回答基于 @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的代码不能使用的原因在截图里


最后的效果是这样

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式