2

我是在 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
4

2 回答 2

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
于 2013-05-07T14:41:35.277 回答
0

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

在 2003 Tools>Options>Color http://support.microsoft.com/kb/288412中还描述了如何执行此操作

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

于 2013-05-07T15:54:01.853 回答