在Excel中生成HEX颜色

我将数据保存在Excel中作为计算累积结果的数字(所有累积值的总和为100)。

*********************************** *Result*Cumulative* RGB * * 230 * 30 * HEX (darkest) * * 100 * 10 * HEX (lightest)* * ... * ... * ... * *********************************** 

我想写函数/生成颜色“代码”hex将是累计值的结果。 最高的颜色应该是最黑的颜色,最低的颜色应该是最浅的颜色。

我需要将这个结果CSV导出到另一个程序,所以不可能使用build in function来生成颜色。

使用这个VBA:

 Public Const MaxR = &HCC Public Const MaxG = &HDD Public Const MaxB = &HFF Public Const MinR = &H33 Public Const MinG = &H44 Public Const MinB = &H55 Public Function GETHEXCOLOR(Value As Double) As String Dim R, G, B As Integer R = Round(Value * (MaxR - MinR) + MinR) G = Round(Value * (MaxG - MinG) + MinG) B = Round(Value * (MaxB - MinB) + MinB) GETHEXCOLOR = "#" _ & Application.WorksheetFunction.Dec2Hex(R, 2) _ & Application.WorksheetFunction.Dec2Hex(G, 2) _ & Application.WorksheetFunction.Dec2Hex(B, 2) End Function 

如何使用:为最亮和最暗的颜色指定#CCDDFF (在我的情况下 – #CCDDFF#334455 )。 从单元呼叫:

 =GETHEXCOLOR(0.45) 

0.45 – 是你的百分比累计值。

无论漂浮你的船。 这个sub给你灰度string100给“#000000”,即黑色和0给白色。

 Sub ert() Dim hx As String CummNum = Cells(1, 1).Value 'number Between 0 and 100 Lightness = Int(255 - CummNum * 2.55) slhx = Application.WorksheetFunction.Dec2Hex(Lightness) hx = IIf(Len(slhx) = 2, slhx, 0 & slhx) hxc = "#" & hx & hx & hx MsgBox hxc End Sub 

以下是从RAND函数生成hex值的公式:

= TEXT(DEC2HEX(RAND()* 255), “00”)&TEXT(DEC2HEX(RAND()* 255), “00”)&TEXT(DEC2HEX(RAND()* 255), “00”)