前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA技巧:基于单元格背景色设置单元格字体颜色

VBA技巧:基于单元格背景色设置单元格字体颜色

作者头像
fanjy
发布2024-03-25 13:51:02
1130
发布2024-03-25 13:51:02
举报
文章被收录于专栏:完美Excel完美Excel

标签:VBA

这是在网上看到的一段代码,辑录于此,供有兴趣的朋友参考。

有人问:如何根据单元格的背景色确定单元格字体是黑色还是白色?也就是说,如果单元格背景色是白色,那么字体就是黑色;反之,如果单元格背景色是黑色,那么字体就是白色。

下面是解决这个问题的VBA程序,很酷的算法!

代码语言:javascript
复制
Sub SetFontColor()
 Dim cell As Range
 For Each cell In Selection
   cell.Font.Color = BorW(cell.Interior.Color)
 Next cell
End Sub

Function BorW(RGB As Long) As Long
 Dim R As Integer, G As Integer, B As Integer
 R = (RGB And &HFF)
 G = (RGB And &HFF00&) / 256
 B = (RGB And &HFF0000) / 65536
 BorW = vbWhite
 If R * 0.3 + G * 0.59 + B * 0.11 > 128 Then BorW = vbBlack
End Function

亮度公式:

R * 0.3 + G * 0.59 + B * 0.11 = L

这是“亮度”或颜色亮度的公式,常用于将颜色转换为灰度。

选择要设置字体颜色的单元格区域,运行SetFontColor过程即可。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-03-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档