2014-10-31 2 views
0

나는 막혔습니다. 많은 노력을 기울이지 않았으므로 이에 대한 해결책이 있는지 모르겠습니다.Excel VBA 조건부 서식 지정 수식 내 서식 설정

Sample

I 칼럼 B 세포가 노란색으로 변 그래서 동등 또는 그 이하, 19 % 인 경우 조건부 서식을 추가하려고하고는 전술 된 예에서, 셀 B1 정상적으로 그래서 A 열에 파트너 셀의 $ 19,000가 $ 100,000의 19 %보다 작거나 같기 때문에 노란색으로 변합니다.

이 조건부 서식을 Excel vba를 통해 추가해야합니다. 나는 아래의 vba 코드를 추가하려했지만 B1의 모든 셀에 대한 조건부 서식 공식을 사용했습니다. B3은 $A1*0.19으로 고정됩니다. B1 조건부 서식 수식이 $A1*0.19이되어야합니다. 그런 다음 B2 조건부 서식 수식은 $A2*0.19이 될 것입니다. 3 행이 아니라 350 행 정도가 있습니다. 그럼에도 불구하고 내 VBA 코드는 $A521325*0.19 또는 실제 또는 실제와 다른 방식으로 변경됩니다.

With Sheet1.Range(Sheet1.Cells(1, 2), Sheet1.Cells(3, 2)) 
    daformula = "=$A1*0.19" 
    .FormatConditions.Add Type:=xlCellValue, Operator:=xlLessEqual, Formula1:=daformula 
    .FormatConditions(.FormatConditions.Count).SetFirstPriority 
     .FormatConditions(1).Interior.PatternColorIndex = xlAutomatic 
     .FormatConditions(1).Interior.ThemeColor = xlThemeColorAccent2 
     .FormatConditions(1).Interior.TintAndShade = -0.249946592608417 
    .FormatConditions(1).StopIfTrue = False 
End With 

아이디어는 사용자가 사용자에 셀 변경 사라지거나 값에 따라 다시 어느 컬러 흑백 열의 셀 중 하나를 변경하는 시트에 조건부 서식을 가산 매크로 실행 이후 다른 CF 규칙이 같은 세포에 영향을 줄 수있는 방법에 다소 달려 .SetFirstPriority 또는 .StopIfTrue 같은 기타 세부 사항을 추가 여부

+0

위의 코드를 테스트 한 결과 잘 작동합니다. 잘 작동합니다. [https://www.dropbox.com/s/er3imeavayvrkmo/Test.xlsm?dl=0] –

+0

아니요, 그렇지 않습니다. 링크에 해당 파일이 있으면 모든 조건부 서식을 제거한 다음 코드를 다시 실행하십시오. 당신은 38의 200이 빨갛게되지 않고있는 것을 볼 것이다. 엉망이 됐어. 이건 참으로 열심히 보인다 : s – Jay

+0

당신에게 무엇을 말해 줄지 모르겠다. Excel 2010의 코드는 맞다. 나는 다른 버전이 있다면 많은 도움이되지 않는다고 생각한다. ( –

답변

1

시도,

With ActiveSheet.Cells(1, 2).Resize(3, 1) 
    .FormatConditions.Add Type:=xlExpression, Formula1:="=$B1<=($A1*0.19)" 
    .FormatConditions(.FormatConditions.Count).Interior.Color = 65535 
End With 

(조건부 서식은 여전히 ​​작동합니다).

1

당신은 우리가 대상을 받아에만 서식 추가하려면 위의 코드를 변경해야 이제 모든 열 A의 변화 (장소 Sheet1의 객체에서이 코드)

Private Sub Worksheet_Change(ByVal Target As Range) 

    If Target.Column = 1 Then 

     'run code to add conditional formatting 
     condFormat Target 

    End If 

End Sub 

을 모니터링하는 이벤트를 만들 수 있습니다 열 B에 해당하는 셀

Public sub condFormat (Target as range) 
    With target.offset(0,1) 
     daformula = "=" & target.address & "*0.19" 
     .FormatConditions.Add Type:=xlCellValue, Operator:=xlLessEqual, _ 
           Formula1:=daformula 
     .FormatConditions(.FormatConditions.Count).SetFirstPriority 
     .FormatConditions(1).Interior.PatternColorIndex = xlAutomatic 
     .FormatConditions(1).Interior.ThemeColor = xlThemeColorAccent2 
     .FormatConditions(1).Interior.TintAndShade = -0.249946592608417 
     .FormatConditions(1).StopIfTrue = False 
    End With 
end sub 

나는 한 번에 1 개 이상의 셀을 변경 고려하지 않은,하지만이 때 creati

+0

나는 깜빡했다. , 전체 데이터베이스가 Excel VBA에서 처리되고 나중에 Google 문서 도구에 업로드됩니다. 따라서 Google에서 CF를 CF로 필요로하는 이유는 Google 문서 도구에 업로드 할 때 포함됩니다 – Jay

0

당신의 문제가 해결됩니다 조건부 서식 지정과 관련된 셀 선택은 VBA의 조건부 서식에서 중요합니다.

조건부 서식 지정 수식이 동일한 행의 값에만 액세스하는 경우 ActiveSheet.cells (1,1) .select를 사용하거나 위 행의 값을 참조하는 경우 ActiveSheet.cells (2,1)를 사용해보십시오.