ExcelVBA实现单元格背景颜色与RGB值互转

3c0f52c9aa84df83eabcd5622707cc3f.png

==标题==

ExcelVBA实现单元格背景颜色与RGB值互转

==正文==

解决问题

1.手工操作:单元格背景颜色与RGB值

2.在VBA中:由RGB值设置单元格背景颜色

3.在VBA中:由单元格背景颜色提取RGB值

一、基本介绍

在Excel中,我们通常用手工操作,设置单元格的背景颜色。而在电脑编程中,单元格的背景颜色由RGB(Red - 红、Green - 绿、Blue - 蓝)颜色模型是一种通过混合不同比例的红、绿、蓝三种颜色分量来表示颜色的方式。每个颜色分量的值范围是0到255。例如,(255, 0, 0)表示纯红色,(0, 255, 0)表示纯绿色,(0, 0, 255)表示纯蓝色,而(0, 0, 0)表示黑色,(255, 255, 255)表示白色。

二、颜色分量的意义

  • 红色分量(Red)

    :决定了颜色中红色的强度。当红色分量的值越高时,颜色就越偏向红色。

  • 绿色分量(Green)

    :控制颜色中绿色的含量。较高的绿色分量值使颜色更倾向于绿色。

  • 蓝色分量(Blue)

    :确定颜色中蓝色的比重。大的蓝色分量值会让颜色更接近蓝色。 通过调整这三个分量的不同组合,可以创建出各种各样的颜色

三、手工操作:设置单元格背景颜色并查看到RGB值呢

鼠标右键已填充颜色的单元格->>点击打开“设置单元格格式”->>点击“填充”选项下的“其他颜色”->>点击“自定义”,选择颜色模式为RGB->>

5f436ee9ba50b5c8a1b2ab27165afd14.png

下面进行ExcelVBA编程设计,我先设计了这样子的一个测试场景

在工作表“ 色彩”中,两个区域,

由RGB取色:从K25单元格开始

由色取RGB:从E25单元格开始

da63c729361a231d187bb4495646adfd.png

四、在VBA中:由RGB值-->>设置单元格背景颜色

示例代码

Sub 由RGB取色()Dim Rng As RangeWith Worksheets("色彩")    lastRow = .Range("K25").End(xlDown).Row    For i = 26 To lastRow        Set Rng = .Range("k" & i)        rN = CInt(Rng.Offset(0, 1).value)        Gn = CInt(Rng.Offset(0, 2).value)        Bn = CInt(Rng.Offset(0, 3).value)        Rng.Offset(0, 4).Interior.Color = RGB(rN, Gn, Bn)    NextEnd WithEnd Sub

代码解析:

1.从K25到K25最后的一行循环

2.RN=L列的值,GN=M列的值,BN=M列的值

3.Range.Interior.Color=RGB(RN,GN,BN)的值

五、在VBA中:由单元格背景颜色-->>提取RGB值

示例代码

Sub 由色取RGB()Dim Rng As RangeWith Worksheets("色彩")    lastRow = .Range("E25").End(xlDown).Row    For i = 26 To lastRow        Set Rng = .Range("F" & i)        Rng.Offset(0, 1) = Rng.Interior.Color Mod 256        Rng.Offset(0, 2) = Rng.Interior.Color \ 256 Mod 256        Rng.Offset(0, 3) = Rng.Interior.Color \ 256 \ 256 Mod 256    NextEnd WithEnd Sub

代码解析:

相关知识

1. Mod运算

Mod运算符用于计算两个数相除后的余数,即取模运算

如:result =10 Mod 3    ' result 的值为 1

2. \运算

\运算符用于执行整除运算,即计算两个数相除后的整数部分

如:result = 10 \ 3    ' result 的值为 3 

1.从E25到E25最后的一行循环

2.Rng.Interior.Color是一个Long型整数

3.R=Long Mod 256,就是 Long除以256后的余数,G,B同理进行取整再取余的运算。

下面是效果图

f43368bb0fd5cfafc43d8fc5392a58f2.png

六、总结:

单元格背景颜色与RGB值互转

==The end==

7ea376d18a39c5d533d4010e01f68943.png

da9960454a59a55408de6ca2d5acd2da.png

==合集==

====other====

关注

9d30d9e7721cc6a8019bfa0b37ee0fda.jpeg

转发

点赞

在看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值