2017-04-04 221 views
1

我目前正在研究一些執行一些不同操作的宏,並且現在我被鎖定在該過程的最後部分。VBA Excel - 在包含基於另一個單元格值的值的行中着色每個單元格

我有一個表,該表顯示的顏色表的值應該是在旁邊的一張桌子和一列要清楚明白我的意思,我這幅畫連接:

What I currently have

現在,正如你所看到的,列O中有條目表明B:N中的條目應該是哪種顏色。例如:O3的值是r。這意味着C3:E3應該塗成紅色。下面是它應該如何看起來像宏已經做了工作後:

What it should look like in the end

正如你可以看到它是至關重要的宏觀只有顏色的細胞中的行裏面居然有一個值/任意值。空單元格不應着色。

在這方面的任何幫助將非常感謝!

在此先感謝。

回答

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 
+0

就像一個魅力。非常感謝你。 D. Todor! –

+0

不客氣!很高興它的工作。 – sktneer

相關問題