专业的编程技术博客社区

网站首页 > 博客文章 正文

RGB转换为16进制颜色,vba几行代码教你学会制作颜色选择器

baijin 2024-08-31 15:57:05 博客文章 2 ℃ 0 评论

Excel在使用颜色值,一般使用RGB表示或者10进制赋值。

本文件介绍一下如何制作一个颜色选择和RGB转换16进制表示颜色值。

如下图所示,左侧为RGB转换为16进制方法,右侧为16进制转换为RGB方法。

RGB即分别指三元色中的红、黄、蓝,值范围为0~255,由暗到明。

更换不同的数值可以得到不同的颜色值。

转换RGB转换16进制函数代码:

Private Function Get16(r, g, b)
    Get16 = "#" & VBA.Format(VBA.Hex(r), "00") & VBA.Format(VBA.Hex(g), "00") & VBA.Format(VBA.Hex(b), "00")
End Function
Private Sub SetColor(ByVal Target As Range)
If Target.Address = "$B$3" Or Target.Address = "$C$3" Or Target.Address = "$D$3" Then
    Range("C5").Value = Get16([B3].Value, [C3].Value, [D3].Value)
    Columns(6).Interior.Color = RGB([B3], [C3], [D3])
End If
End Sub

16进制转换RGB函数代码:

If Target.Address = "$J$2" Then
    Dim h As String
    h = VBA.Replace([J2].Value, "#", "", 1, 1)
    [I6].Value = Application.WorksheetFunction.Hex2Dec(VBA.Left(h, 2))
    [J6].Value = Application.WorksheetFunction.Hex2Dec(VBA.Mid(h, 3, 2))
    [K6].Value = Application.WorksheetFunction.Hex2Dec(VBA.Right(h, 2))
    [M2].Interior.Color = RGB([I6], [J6], [K6])
End If

使用了一个内置函数Hex2Dec()将十六进制数转换为十进制数返回,这个很简单。



END

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表