Excel:Interior.ColorIndex为同一个索引生成不同的值

我想设置一个单元格的范围有一个灰色的内部。 我想要的灰色是在黑色和白色的后面(上排,左起第三个)。

我手动设置一个单元格的内部颜色,然后使用vba到ColgIndex的MsgBox。 它提出了19,但是,当我设置一个单元格的Interior.ColorIndex属性等于19,单元格不是灰色,但灰白色/奶油色。

下面的代码实际上将单元格(单元格A1)的颜色从灰色更改为了:

Dim r As Range Set r = Range("A1") Dim n As Integer n = r.Interior.ColorIndex r.Interior.ColorIndex = n 

任何人都可以解释吗?

我相信ColorIndex只支持有限数量的颜色。 试试这个:

 Dim r As Range Dim n As Long ' The return values are large, so Integer will overflow Set r = Range("A1") ' The color is 14806254 n = r.Interior.Color r.Interior.Color = n 

或者为了您的实际目的:

 Dim myRange As Range Dim n As Long myRange = Range("A1:F1") n = 14806254 ' Color away! For Each cell In myRange cell.Interior.Color = n Next cell 

您还需要设置themecolor。

 Dim r As Range Set r = Range("A1") Dim n As Integer n = r.Interior.ColorIndex With r.Interior .ColorIndex = n .ThemeColor = xlThemeColorDark2 End With