ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何将整型颜色数值与RGB颜色值进行换算?

如何将整型颜色数值与RGB颜色值进行换算?

作者:绿色风 分类: 时间:2022-08-17 浏览:97
楼主
chrisfang
Q:如何将整型颜色数值与RGB颜色值进行换算?
A:Excel中所使用的颜色除了可以用索引号表示以外,还可以用具体颜色数值来表示,其中Long型的颜色数值与RGB格式的数值存在着换算关系,公式如下:
iColor = R + G * 256 + B * 256 * 256

因此,将Long型颜色数值转换为RGB三个数值的VBA代码可以这样写:

  1. R = (iColor) \ 256 ^ 0 Mod 256
  2. G = (iColor) \ 256 ^ 1 Mod 256
  3. B = (iColor) \ 256 ^ 2 Mod 256
  4.       




  1. B = iColor \ 65536
  2. G = (iColor - B * 65536) \ 256
  3. R = iColor - B * 65536 - G * 256


而已知RGB三数值要转换为Long型整数颜色值,则比较简单,可以直接使用RGB函数:

  1. iColor=RGB(R,G,B)
2楼
い卋玑┾宝珼
原来是这么换的
3楼
0Mouse
iColor = R + G * 256 + B * 256 * 256
这个式子右边有3个变量,又不知道R、G、B三者之间的换算关系,就能直接得出:
R = (iColor) \ 256 ^ 0 Mod 256?我没看懂。

西西能指点一哈不?

4楼
い卋玑┾宝珼
你不是已经知道了嘛

一个icolor是3个八位数组成哇,最前8位是B,中间的8位是G,后面8位是R

然后一个8位不是2^8,也就是256呗,然后通过这样的等式取出对应的8位呗

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap