VBA Excel:ColorIndex兼容性的RGB范围

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

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值:2007年的RGB(165,165,165)在2013年变为RGB(166,166,166),而RGB(117,146 ,60)在2007年成为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 ... 

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

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

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

我并不是说这是一个很好的系统(不是),但是考虑到你的约束 – 依靠用户点击某个颜色button,就像你将要得到的那样。

我认为。