我在excel中使用VBA宏是新手,我正在尝试根据另一个单元格不为空的条件更改单元格的背景颜色。我以为我弄清楚了,但我一定做错了,因为无论我指定'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
答案 0 :(得分:3)
您必须使用颜色索引或相应的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
答案 1 :(得分:0)
检查excel的调色板是否未更改 根据您的版本,您可以将其重置为标准调色板
在2003工具&gt;选项&gt;颜色 http://support.microsoft.com/kb/288412描述了如何执行此操作
或者在更高版本中,您可能会应用导致问题的自定义主题