使用VBA条件格式化背景颜色?

时间:2015-04-01 12:46:05

标签: sql-server vba excel-vba excel

我获得了VBA代码,用于在Excel文件中填充一些T-SQL查询数据。在该数据中,一列包含红色,琥珀色,绿色和N / A的值。现在我想根据这些值(红色,琥珀色,绿色和白色)获得背景颜色。我怎么能在VBA中做到这一点?

编辑:我需要像这样:

id firstname lastname complaint
1  paul      nixon    RED
2  John      nathon   RED
3  sera      teag     AMBER
4  CLARE     walker   GREEN

现在我根据单元格值想要列'投诉'的背景颜色,就像单元格值RED我想要的背景颜色也是RED等等。在VBA代码中。

2 个答案:

答案 0 :(得分:1)

更改单元格的背景颜色很简单。确定改变它的颜色是这里的关键步骤。如果你知道这4种颜色是唯一的选择,我只会敲出案例并设置颜色。如果您发现这种颜色越来越多,您可能希望在字典中定义它们并执行查找而不是SELECT-CASE构造。

这个简单的代码适用于您的示例。您需要根据实际应用更好地定义范围(可能不是“D2:D5”)并调整颜色。

Sub ColorWithText()

    Dim cell As Range

    For Each cell In Range("D2:D5")
        Select Case UCase(cell.Value)
            Case "RED"
                cell.Interior.Color = RGB(255, 0, 0)
            Case "AMBER"
                cell.Interior.Color = RGB(255, 191, 0)
            Case "GREEN"
                cell.Interior.Color = RGB(0, 255, 0)
            Case "WHITE"
                cell.Interior.Color = RGB(255, 255, 255)
        End Select
    Next cell
End Sub

以下是代码运行后我的Excel实例的图片。 image with colors applied

答案 1 :(得分:-1)

发现这可能对您有所帮助: https://technet.microsoft.com/en-us/library/ee692862.aspx