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