在Excel中生成颜色HEX

时间:2015-03-05 07:15:37

标签: excel colors excel-formula hex

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

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

我想写函数/生成颜色"代码"在HEX中,这将是累积值的结果。最高值应该是最暗的颜色,最低值应该是最亮的颜色。

我需要将此结果以CSV格式导出到另一个程序,因此无法使用内置函数生成颜色。

3 个答案:

答案 0 :(得分:1)

使用此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#334455)。来自牢房的电话:

=GETHEXCOLOR(0.45)

0.45 - 是您的累积值百分比。

答案 1 :(得分:0)

无论你的船漂浮着什么。此子程序为您提供灰度字符串,其中100为“#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

答案 2 :(得分:0)

以下是从RAND函数生成十六进制值的公式:

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