我有一个对象(即一个包含文本的矩形形状),我希望形状变化的颜色(状态)取决于一个单元格内的文本(从下拉列表)。VBA中单个对象上的多个条件格式
我现在使用'if'函数来格式化形状,我觉得这是最好的方法;但是我不确定如何在VBA中运行多个“IF”公式。
我已经运行了一个成功的'如果'公式格式化,但这只能够改变2种颜色。这是我的单一'如果'公式。
If Range("I2") = "Deviation" Then
Worksheets("M2").Shapes("Rect1").Fill.ForeColor.RGB = RGB(79, 79, 79)
Else
Worksheets("M2").Shapes("Rect1").Fill.ForeColor.RGB = RGB(0, 102, 204)
End If
当我添加其他条件/'如果'公式脚本它无法改变对象的颜色。我得到的最接近的是'If'和'End If'公式来涵盖所有可能性。这是我最接近的提取(从我的经验)。
If Range("I2") = "Yes" Then
Worksheets("M2").Shapes("Rect1").Fill.ForeColor.RGB = RGB(0, 128, 0)
End If
If Range("I2") = "No" Then
Worksheets("M2").Shapes("Rect1").Fill.ForeColor.RGB = RGB(218, 9, 4)
End If
If Range("I2") = "In Progress" Then
Worksheets("M2").Shapes("Rect1").Fill.ForeColor.RGB = RGB(201, 129, 13)
End If
If Range("I2") = "Deviation" Then
Worksheets("M2").Shapes("Rect1").Fill.ForeColor.RGB = RGB(79, 79, 79)
Else
Worksheets("M2").Shapes("Rect1").Fill.ForeColor.RGB = RGB(0, 102, 204)
End If
你可以尝试[编辑您的问题(http://stackoverflow.com/posts/11666218/edit)和正确缩进代码,然后选择它,然后按' {}'按钮使它看起来不错? – assylias 2012-07-26 09:27:42
您需要使用语句“ElseIf”。在这种情况下,我可能会选择案例。 – Trace 2012-07-26 09:50:24