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

标签 vba excel

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

最佳答案

您必须使用颜色索引或适当的 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

关于VBA Excel 不会将单元格更改为正确的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16421676/

相关文章:

excel - 处理不正确的密码运行时错误

arrays - 是否可以将字典添加到 Excel VBA 中的数组?

excel - 通过即时调整大小和调整在纸张之间复制图像

javascript - 将分钟转换为秒

excel - 在此示例中,SUMPRODUCT 命令如何工作?

vba - Excel VBA 打开 Word 模板,填充,然后在其他位置另存为 .docx 文件

vba - Excel 找不到日期(无论格式选项如何)

vba - 如何在 VBA 中一个一个地执行多个批处理文件?

Excel佣金公式

c# - OleDbDataAdapter.Fill(DataTable) 不适用于大 xls 文件大小