2017-04-11 113 views
2

我需要有條件地格式化根據加載的數據左右移動的三列。條件是單元格值爲空(="")。我真的很難找出這個問題。更改範圍的條件格式化

這裏是我的設置:

Sub Conditional_Format() 
    Dim ws2 As Worksheet 
    Dim lRow3 As Long, lCol3 As Long 
    Dim rng8 As Range, rng9 As Range 

    Set ws2 = Worksheets("Unfav GT500 Comments") 

    With ws2 
     lRow3 = .Range("A" & .Rows.Count).End(xlUp).Row 
     lCol3 = .Cells(3, .Columns.Count).End(xlToLeft).Column 

     Set rng8 = .Range(.Cells(4, lCol3 - 2), .Cells(lRow3 - 1, lCol3 - 1)) 
     Set rng9 = .Range(.Cells(4, lCol3), .Cells(lRow3 - 1, lCol3)) 
    End With 
End Sub 
+0

首先,您錯過了'End With'。另外,你需要在'rng8'之前'Dim'。你的數據是什麼樣的?你在哪裏尋找空白的細胞?您的帖子似乎有點遺漏。 – BruceWayne

+0

爲什麼你需要使用VBA?另外,我沒有看到CF的任何代碼行。你想完成什麼? – L42

回答

1

對於動態變化的範圍,我建議使用一個搜索到第一位置的列。是否有任何固定的唯一列標題,您正在尋找和在電子表格的任何特定區域?如果是這樣,請使用下面的內容來搜索它。您可以更改格式和列標題以適合您的數據。

'Below row will get you the column header. Repeat this line to search for the three columns. 
ws2.Cells.Find(What:="Specific_Column_Header", LookIn:= xlValues).Activate 
startrow = ActiveCell.Row 

For row1 = startrow to ws2.Cells(.Rows.Count, "A").End(xlUp).Row 
    If Cells(row1, ActiveCell.Column) = "" Then 
     'Set your format here 
     Cells(row1,ActiveCell.Column).Select 
     With Selection.Interior 
      .Pattern = xlSolid 
      .ThemeColor = xlThemeColorDark1 
      .TintAndShade = -0.15 
     End With 
    End If 
Next 
+0

謝謝,先生!超級有用。 – ERKSMTY