VBA Excel:用于Colorindex兼容性的RGB范围

时间:2014-11-27 15:03:54

标签: excel vba colors rgb

我在Excel 2007中创建了一个宏 ,它允许值取决于源文件的字体颜色,如下所示(这段代码是循环的一部分):

 If Worksheets("Source1").Cells(i, j).Font.Color = RGB(165, 165, 165) Or Worksheets("Source1").Cells(i, j).Font.Color = RGB(117, 146, 60) Then
     Worksheets("Result").Cells(UnusedRow, 15).Value = "Closed"
 Else
     Worksheets("Result").Cells(UnusedRow, 15).Value = "Active"
 End If

这没有问题。

然而,奇怪的是,相同的源文件中的相同的单元格在使用Excel 2013 打开时具有不同的RGB值:RGB(165, 2007年,165,165)成为RGB(166,166,166),2013年RGB(117,146,60)在2013年成为RGB(118,147,60)。

这就是为什么我想为字体颜色中的每个数字使用一个小范围,例如源文件中的RGB(x,y,z):

 If x => 164 And x <= 167 And y => 164 And y <= 167 And z => 164 And z <= 167 Then 
   ...

有人可以告诉我如何正确编码吗?谢谢!

1 个答案:

答案 0 :(得分:1)

好吧,我的大脑终于浮出水面了,我得到了答案。

而不是Color,请使用ColorIndex。这是他们在调色板中选择的颜色位置的索引。

我并不是说它是一个很棒的系统(它没有),但考虑到你的限制 - 依靠用户点击某个颜色按钮,它就像你一样好#39;重新开始。

我想。