을 정의 나는 다음과 같은 코드가 있습니다조건부 서식 범위
Sub ConditionalFormattingNamedRange()
Dim x As Range, Cell As Range
Set x = Range("AALB_Exposure")
For Each Cell In x
If Cell.Value > Sheets("Overview").Range("E4").Value Then
Cell.Interior.Color = RGB(0, 255, 0)
End If
Next
End Sub
배경 정보 : 그들은 시트의 셀 E4 "개요"보다 큰 경우이 공식 색깔 내 정의 된 범위 "AALB_Exposure"의 값을 수 있습니다. E4 셀의 값은 다른 두 셀의 결과입니다. 때때로 이러한 세포 중 하나가 다릅니다. "AALB_Exposure"와 같이 20 개 이상의 정의 된 범위가 있으므로 모듈을 사용하는 것을 선호합니다.
문제점 :이 모듈은 모든 값을 색상으로 만듭니다. 때로는 "AALB_Exposure"에 빈 셀이 있습니다. 나는 이것이 일어나지 않는 것을보고 싶다. 이것이 가능한가? 또한이 모듈은 정적이며 E4를 조정할 때 정의 된 범위의 셀 색을 수정하지 않습니다. 이것은 모듈을 실행 한 후에 만 발생합니다. E4의 값을 다양하게하는 것에 따라 세포의 색이 즉시 조정되도록 할 수 있습니까?
감사합니다.
는 ----- 편집 ------
브루스 웨인의 우수한 제안 후, 나는 내 코드를 조금 변경되었습니다. 명명 된 범위로
Private Sub Workbook_SheetCalculate(ByVal Target As Range, ByVal Sh As Worksheet)
If Target.Address = "$A$9" Then
Application.ScreenUpdating = False
Dim x As Range, Cell As Range
Set x = Sh.Range("P1:P150,AD1:AD150,AR1:AR150,BF1:BF150,BT1:BT150,CH1:CH150,CV1:CV150,DJ1:DJ150,DX1:DX150,EL1:EL150")
For Each Cell In x
If Cell.Value > Sh.Range("A9").Value And Cell.Value <> "" Then
Cell.Interior.Color = RGB(0, 255, 0)
End If
Next
End If
Application.ScreenUpdating = True
최종 하위
은 문제가이 방법으로 해결하기 위해 어쩌면 더 나은, 항상 각 시트에 대해 동일합니다? 결과적으로, 개요 시트에있는 셀 E4가 각 시트의 동일한 위치에 항상있는 셀로 변경되었습니다. 그러나이 새 모듈이 맞습니까? 당신이 E4
가 변경 될 때마다이 실행하려면