2014-07-17 2 views
0

I는 두 셀의 사용자 입력의 퍼센트의 에러를 계산포스 엑셀 계산

=IF(OR(J41="",J40=""),"",(1-($J$41/$J$40)))

하여 평가 셀을 갖는다. 또한 다른 셀 중에서이 셀의 유효성을 검사하는 별도의 시트에 IFC가 있으며 백분율 오류 값이 특정 수치보다 높거나 낮은 경우 경고가있는 특정 색상으로 설정됩니다. 문제는 셀을 클릭하여 해당 셀을 계산하고 그 시간에 값을 채우는 enter (또는 F2 + Enter)를 누르지 않으면 셀이 경고를 표시하지 않는다는 것입니다. 사용자가 J41과 J40에 값을 입력 할 때 해당 셀에서 계산을 강제 실행하여 경고를 즉시 채우는 방법이 있습니까? 이것에 여러 스레드를 검사 한, 일부 Application.Volatile 문을 사용 말하지만, 그게 작동합니다 너무 확실하지 않다 ..

어떤 제안?

+0

IFC는 무엇을 의미합니까? – Rory

+0

죄송합니다. 이것은 양식의 모든 셀을 참조하고 특정 제한 사항/유효성을 설정 한 백그라운드에서 실행중인 VBA를 가진 인터페이스 테이블 일뿐 아니라 해당 셀로 내보낼 양식의 값을 선택합니다. DB에 삽입되는 1 행 테이블. 데이터를 검증하도록 설정할 수있는 인터페이스 일뿐입니다. –

+0

코드를 사용하여이 모든 작업을 수행하는 경우 표시하는 것이 좋습니다. ;) – Rory

답변

0

수동으로 범위를 계산하는 것은 Range.Calculate을 사용하는 것처럼 간단합니다. 특정 범위에서 값이 변경 될 때 코드를 실행하려면 Worksheet_Change을 사용하십시오.

Option Explicit 

Private Sub Worksheet_Change(ByVal Target As Range) 
    Dim rngTrigger As Range: Set rngTrigger = Range("D5") 
    Dim rngTarget As Range: Set rngTarget = Range("E5") 

    If Not Intersect(Target, rngTrigger) Is Nothing Then _ 
     rngTarget.Calculate 
End Sub