VBA Excel不会将单元格更改为正确的颜色

我是新的在Excel中使用VBAmacros,我试图改变一个单元格的背景颜色的条件,其他单元格不是空的。 我想我已经想通了,但是我一定是做错了,因为不pipe我指定“Interior.Color”改变的颜色,它都会把单元格变成一个难看的蓝色。 代码如下:

Sub Hello() MsgBox ("Hello, world!") Dim shSource As Worksheet Dim shDest As Worksheet Set shSource = ThisWorkbook.Sheets("Box Channel Tracking") Set shDest = ThisWorkbook.Sheets("Box Channel Schematic") If shSource.Range("C176").Value <> "" Then shDest.Range("E8").Interior.Color = RGB(255, 255, 255) shDest.Range("E8").Interior.Pattern = xlSolid Else shDest.Range("E8").Interior.Color = Red shDest.Range("E8").Interior.Pattern = xlSolid End If End Sub 

你必须使用颜色的索引或适当的RGB值。 将else分支的第一行更改为:

  shDest.Range("E8").Interior.Color = RGB(255, 0, 0) 

完整的代码示例:

 Sub Hello() MsgBox ("Hello, world!") Dim shSource As Worksheet Dim shDest As Worksheet Set shSource = ThisWorkbook.Sheets("Box Channel Tracking") Set shDest = ThisWorkbook.Sheets("Box Channel Schematic") If shSource.Range("C176").Value <> "" Then shDest.Range("E8").Interior.Color = RGB(255, 255, 255) shDest.Range("E8").Interior.Pattern = xlSolid Else shDest.Range("E8").Interior.Color = RGB(255, 0, 0) '<-modified shDest.Range("E8").Interior.Pattern = xlSolid End If End Sub 

检查excel的调色板是否没有改变
根据您的版本,您可以将其重置为标准调色板

在2003年工具>选项>颜色http://support.microsoft.com/kb/288412描述如何做到这一&#x70B9;

或者在更高版本中,您可能会应用导致问题的自定义主题