VBA Excel - 对包含基于另一个单元格的值的值的行中的每个单元格进行着色

时间:2017-04-04 13:05:10

标签: excel vba excel-vba

我目前正在开发一个宏,它做了一些不同的事情,现在我被困在这个过程的最后一部分。

我在桌子旁边有一张桌子和一列,表示桌子的颜色应该是的颜色。为了清楚我的意思,我附上这张图片:

What I currently have

现在,正如您所看到的,O列中有条目表示B:N中的条目应该是哪种颜色。例如:O3的值是r。这意味着C3:E3应该涂成红色。以下是在宏完成它之后它应该是什么样子:

What it should look like in the end

正如您所看到的那样,宏只对那些实际上具有值/任何值的行中的单元格进行着色是至关重要的。空单元格不应着色。

非常感谢这方面的任何帮助!

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情......

Sub ApplyInteriorColor()
Dim rng As Range
Dim lr As Long, i As Long
Dim clr As Long
clr = vbRed
lr = Cells(Rows.Count, 1).End(xlUp).Row
Range("B3:N" & lr).Interior.ColorIndex = xlNone
If lr > 2 Then
    For i = 3 To lr
        Set rng = Range(Cells(i, 2), Cells(i, "N"))
        If Application.CountA(rng) > 0 And Cells(i, "O") <> "" Then
            Select Case Cells(i, "O").Value
                Case "r'"
                    clr = vbRed
                Case "b"
                    clr = vbBlue
                Case "y"
                    clr = vbYellow
            End Select
            rng.SpecialCells(xlCellTypeConstants, 3).Interior.Color = clr
        End If
    Next i
End If
End Sub