2010-02-04 5 views
2

VBA로 그려진 모양 (세 개의 원으로 구성된 신호등)의 색을 업데이트하는 사용자 정의 함수가 있습니다. 워크 시트 셀의 호출은 어떻게 든 다음과 같이 보입니다.Excel 사용자 정의 함수가 셀 업데이트에 호출되지 않았습니다.

setTrafficLight(A1, "Oval 1", "Oval 2", "Oval 3") 

여기서 A1은 예를 들어. "녹색"또는 "빨간색". 다른 매개 변수는 도형의 이름입니다.

Excel에서 사용자 정의 함수를 호출하면 이전 실행 취소 항목을 사용하지 않도록 설정하여 함수가 호출되고 실행 취소 기록이 삭제되는 문제가있었습니다. 함수가 시트 변경에 값마다 호출되지 않도록이 문제를 해결하려면, 내 setTrafficLight 기능에서

Application.OnUndo "Undo SetTrafficLight", "undoSetTrafficLight" 

를 통해 빈 실행 취소 기능을 등록은 Application.VolatileFalse로 설정됩니다. 그러나 이제 A1의 입력 값이 변경 될 때 함수가 호출되지 않습니다. Application.Volatile = True으로 작동하지만 실행 취소가 제대로 작동하지 않습니다. Application.Volatile을 완전히 제거하면 업데이트가 올바르게 작동하지만 한 단계의 실행 취소 만 사용할 수 있습니다.

이 문제를 해결하는 방법에 대한 아이디어가 있으십니까?

+1

조정할 수있다이 질문은 http://www.stackoverflow.com –

답변

1

Worksheet_Change 이벤트 사용은 어떻습니까? 이 같은

뭔가 :

이 A1 셀을 작동해야하지만 쉽게 다른 사람

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Target.Row = 1 And Target.Column = 1 Then 
     Call setTrafficLight 
    End If 
End Sub 
+0

이에 속할 수 있습니다 내가 아직 고려하지 않은 아이디어이지만 불행히도 입력 셀 위치를 정기적으로 변경한다는 사실을 감안할 때 매우 잘 통합되지는 않습니다. – MP24

+0

이 워크 시트의 모든 변경 사항에 대해 setTrafficLight 함수를 호출 할 수 있어야하는 경우를 건너 뛰려면 해당 문제가 있습니까? – Marek

+0

아니요, 문제 없습니다. 그렇게 할거야. 감사. – MP24

관련 문제