VBA Excel不会将单元格更改为正确的颜色
问题描述:
我是在Excel中使用VBA宏的新手,我试图根据另一个单元格不为空的条件来更改单元格的背景颜色。我想我已经想通了,但是我一定是做错了,因为不管我指定'Interior.Color'改变为什么颜色,它都会将单元格变成难看的蓝色。这里是代码:VBA Excel不会将单元格更改为正确的颜色
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介绍了如何做到这一点也
或者在更高版本中,您可能会应用导致问题的自定义主题
您使用的是什么版本的Excel? – datatoo 2013-05-07 15:28:41
你使用任何条件格式? – 2013-05-07 16:12:00
也许他们正在压倒你的VBA代码。 VBA做的是正确的事情,那么你的条件格式就会去那里并炸掉它。 – 2013-05-07 16:12:58