通过十六进制或RGB定义Excel自定义数字格式颜色

通过十六进制或RGB定义Excel自定义数字格式颜色,excel,colors,formatting,rgb,number-formatting,Excel,Colors,Formatting,Rgb,Number Formatting,是否可以通过十六进制或RGB定义自定义数字格式,如下所示 [Black][>5]0.0;[Red][<0]-0.0;[Color34]0.0 如何使用: Cells(1, 1).Interior.Color = RGB(&HFF, &H99, &H0) 如何使用: Cells(1, 1).Interior.Color = RGB(&HFF, &H99, &H0) 对答案发表评论: 我所知道的根据值实现不同字体颜色的唯一方法是: 以

是否可以通过十六进制或RGB定义自定义数字格式,如下所示

[Black][>5]0.0;[Red][<0]-0.0;[Color34]0.0
如何使用:

Cells(1, 1).Interior.Color = RGB(&HFF, &H99, &H0)
如何使用:

Cells(1, 1).Interior.Color = RGB(&HFF, &H99, &H0)

对答案发表评论:

我所知道的根据值实现不同字体颜色的唯一方法是:

  • 以数字格式指定颜色-对于这个Microsoft本身只记录8个命名的颜色[黑色]…[红色],甚至[ColorNN]都是一个未记录的黑客行为

  • 条件格式

  • 使用VBA

  • 要以数字格式指定颜色,您需要知道颜色的名称。仅记录了8种命名颜色[黑色]、[绿色]、[白色]、[蓝色]、[品红]、[黄色]、[青色]、[红色]。但是对于56种索引颜色,使用[ColorNN]和
    NN
    作为颜色索引也是可能的。要确定使用哪个索引索引哪些颜色,可以使用以下
    VBA
    宏:

    Sub UDColorNumberFormats()
     With ActiveSheet
    
      For i = 1 To 56
       sNumberFormat = "[Color" & i & "]0"
       .Cells(i, 1).Value = sNumberFormat
       .Cells(i, 2).NumberFormat = sNumberFormat
       .Cells(i, 2).Value = 888888
       .Cells(i, 3).Interior.ColorIndex = i
      Next
    
     End With
    End Sub
    
    在Excel for Windows中运行此宏(测试了2007版到2016版)将显示[Color45]为橙色。但是如果我们看看微软的文档,我们必须看到,即使是微软也会显示不同的索引颜色。可能只是因为早期版本没有更新

    正如@Zephyr Mays必须意识到的那样,Excel for Mac也使用不同的索引颜色。因此,Excel for Mac和Excel for Windows在这一点上并非100%兼容。但是宏也应该在Excel for Mac中运行。因此,可以检查Excel for Mac使用的索引颜色是否与ColorIndex属性文档中显示的颜色相同。如果是这样,则Excel for Mac将使用比Excel for Windows更早版本的默认调色板。在我看来,这可能被称为一个bug,并可能向微软报告


    正如我在上面的评论中所指出的,[COLORNN]中使用的颜色索引在Libreoffice/Openoffice Calc中也不同。在那里,它们甚至与内饰颜色指数不同。而且它们也依赖于平台(64位或32位)。对我来说,64位Ubuntu中的Libreoffice有64个可用的颜色索引(1-64),而32位Windows中的Libreoffice只有32个可用的颜色索引(1-32)。但这种行为不是一个bug,因为Libreoffice/Openoffice Calc不是100%兼容Excel的,也不希望它是这样。

    对答案发表评论:

    我所知道的根据值实现不同字体颜色的唯一方法是:

  • 以数字格式指定颜色-对于这个Microsoft本身只记录8个命名的颜色[黑色]…[红色],甚至[ColorNN]都是一个未记录的黑客行为

  • 条件格式

  • 使用VBA

  • 要以数字格式指定颜色,您需要知道颜色的名称。仅记录了8种命名颜色[黑色]、[绿色]、[白色]、[蓝色]、[品红]、[黄色]、[青色]、[红色]。但是对于56种索引颜色,使用[ColorNN]和
    NN
    作为颜色索引也是可能的。要确定使用哪个索引索引哪些颜色,可以使用以下
    VBA
    宏:

    Sub UDColorNumberFormats()
     With ActiveSheet
    
      For i = 1 To 56
       sNumberFormat = "[Color" & i & "]0"
       .Cells(i, 1).Value = sNumberFormat
       .Cells(i, 2).NumberFormat = sNumberFormat
       .Cells(i, 2).Value = 888888
       .Cells(i, 3).Interior.ColorIndex = i
      Next
    
     End With
    End Sub
    
    在Excel for Windows中运行此宏(测试了2007版到2016版)将显示[Color45]为橙色。但是如果我们看看微软的文档,我们必须看到,即使是微软也会显示不同的索引颜色。可能只是因为早期版本没有更新

    正如@Zephyr Mays必须意识到的那样,Excel for Mac也使用不同的索引颜色。因此,Excel for Mac和Excel for Windows在这一点上并非100%兼容。但是宏也应该在Excel for Mac中运行。因此,可以检查Excel for Mac使用的索引颜色是否与ColorIndex属性文档中显示的颜色相同。如果是这样,则Excel for Mac将使用比Excel for Windows更早版本的默认调色板。在我看来,这可能被称为一个bug,并可能向微软报告


    正如我在上面的评论中所指出的,[COLORNN]中使用的颜色索引在Libreoffice/Openoffice Calc中也不同。在那里,它们甚至与内饰颜色指数不同。而且它们也依赖于平台(64位或32位)。对我来说,64位Ubuntu中的Libreoffice有64个可用的颜色索引(1-64),而32位Windows中的Libreoffice只有32个可用的颜色索引(1-32)。但是这种行为并不是一个bug,因为Libreoffice/Openoffice Calc不是100%兼容Excel的,也不希望它是100%兼容的。

    我已经看过很多类似的线程,但单元格中数字着色的最简单解决方案是使用条件格式

    但对于图表,最简单的方法是使用基本字体格式选项——您可以在其中指定任何十六进制值。例如,如果您只想给负数上色,您可以通过在数字格式代码中编辑它来覆盖正数的字体格式

    例如:我想把图表刻度上的负数涂成深红色(不是Excel预编的56种颜色之一)

  • 选择图表的y轴,转到工具栏中的字体选项,然后将整个轴变成深红色
  • 要再次将正数变为黑色,请转到“格式轴->轴选项->数字->格式代码”
  • 然后将正数指定为黑色“[Color1]#、##0%#-#、##0%”
  • 瞧,只有负数保留暗红色,而正数硬编码为黑色

  • 您仍然需要将其中一种颜色设置为56个Excel预设之一,但这允许您将一种颜色设置为不同的颜色。

    我已经浏览了许多类似的线程,但为单元格中的数字着色的最简单解决方案是使用条件格式

    但对于图表,最简单的方法是使用基本字体格式选项——您可以在其中指定任何十六进制值。例如,如果您只想给负数上色,您可以通过在数字格式代码中编辑它来覆盖正数的字体格式

    例如: