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
本文暂时没有评论,来添加一个吧(●'◡'●)