2017-04-11 4 views
2

로드 된 데이터에 따라 왼쪽/오른쪽으로 이동하는 3 개의 열을 조건부로 포맷해야합니다. 셀 값이 비어있는 경우 조건은 (="")입니다. 나는이 것을 이해하기 위해 정말로 고심하고있다.변경 범위의 조건부 서식

가 여기 내 설정이다 : 동적으로 변화하는 범위에 대한

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

첫 번째로 '끝'이 없습니다. 또한'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