2015-11-06 107 views
1

我已经找到了它可以手动完成,同时添加规则到单元格的条件格式规则:但是,我希望所有16,000,000十六进制值颜色自动出现,当我写一个单元格的HEX值,所以“手动“添加这些16,000,000 HEX值听起来有点太过分了!没有办法让所有1600万色的色调自动进入,并根据单元格中的HEX值为单元应用背景色?根据单元格中的HEX值设置自动颜色背景吗?

换句话说,我想在单元格中输入0000ff时获得蓝色背景,然后当单元格的HEX值改变时,我喜欢将背景更改为相应的颜色=> BGC更改为红色当输入ff0000时,当00ff00时为绿色,当ffffff ...为白色时为16,000,000或更多颜色。

+0

http://stackoverflow.com/a/ 11466034/1505120可能是有意义的。 – pnuts

回答

2

A Worksheet_Change将十六进制转换为RGB的事件宏应该方便地执行此操作。工作表的HEX2DEC function应该能够处理转换。

右键单击工作表的名称选项卡并选择查看代码。当VBE打开时,将以下内容粘贴到标题为Book1 - Sheet1(Code)的代码表中。

Private Sub Worksheet_Change(ByVal Target As Range) 
    On Error GoTo bm_Safe_Exit 
    Application.EnableEvents = False 
    Dim rng As Range, clr As String 
    For Each rng In Target 
     If Len(rng.Value2) = 6 Then 
      clr = rng.Value2 
      rng.Interior.Color = _ 
       RGB(Application.Hex2Dec(Left(clr, 2)), _ 
        Application.Hex2Dec(Mid(clr, 3, 2)), _ 
        Application.Hex2Dec(Right(clr, 2))) 
     End If 
    Next rng 

bm_Safe_Exit: 
    Application.EnableEvents = True 
End Sub 

点击Alt键 + Q返回到您的工作表。在单元格中输入任何6个字符的十六进制代码以提供背景颜色。

Hexadecimal color fill

+0

你的代码虽然更长,似乎给出了预期的结果。我没有解释为什么我反转红色和蓝色。即使我尝试了Target.Text而不是Target.Value! –

+0

谢谢,我真的很感激。 – romain

+0

非常感谢,它在Excel中像一个魅力。是否有可能在Google Excel表格上使用添加到条件格式规则的功能重现它? – romain

1
Private Sub Worksheet_Change(ByVal Target As Range) 
    If Target.Cells.count <> 1 Then Exit Sub 
    Target.Interior.Color = CLng("&H" & Target.Value) 
End Sub 

它的工作原理,但BGR的基础上的一些原因,没有RGB:FF0000给蓝色和0000FF显示红色:d

+0

Hex2Dec的好捷径。我不能为我的生活记住这样做的快速方法。 – Jeeped

+0

@Jeeped大声笑,但看到答案的结尾处的评论。它让我感到惊讶:p –

+0

非常感谢,会尝试一下。 – romain

相关问题