2

我想将一系列单元格设置为具有灰色内部。我想要的灰色就在调色板上的黑色和白色之后(顶行,左起第三个)。

我手动将单元格的内部设置为此颜色,然后使用 vba 到 MsgBox ColourIndex。它提出了 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

谁能解释一下?

4

2 回答 2

2

我相信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
于 2012-08-20T00:37:34.800 回答
1

您还需要设置主题颜色。

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
于 2012-08-20T00:37:45.440 回答