2017-10-11 2 views
5

다른 셀 내용을 기반으로 특정 값을 계산하고 호출 셀 값과 내부 색상을 설정하는 매우 간단한 VBA 함수를 Excel에서 작성하려고합니다. 나는 값 계산을 잘한다. 그러나 그것은 나를 위해 루프를 던지고있는 내부 채색이다.콜 셀 변경 내부 색상

이 나는 ​​텍스트 및 글꼴 색상을 설정하려면 다음을 수행 할 수 있습니다

Function Test() 
    Application.Caller.Font.ColorIndex = 3 
    Test = "Hello" 
End Function 

하지만 오히려 셀 내부 색상을 설정할 것입니다. 아래 코드의 몇 가지 다른 반복을 시도했지만 이것은 항상 호출 셀에 값 오류를 제공합니다.

Function Test() 
    Application.Caller.Interior.ColorIndex = 3 
    Test = "Hello" 
End Function 

어쨌든, 나는 유사한 변경 (예를 들어, here)에 대해 이야기 다른 SO 게시물을 본 적이 있지만 그 솔루션은 나를 위해 작동하지 않습니다. 조건부 서식을 사용하여이 작업을 수행하지는 않을 것입니다. 다른 Excel 파일간에 쉽게 전송할 수있는 내용을 원하기 때문입니다. 일반 모듈에서이 두 가지로

답변

8

:

Sub ChangeIt(c1 As Range) 
    c1.Interior.ColorIndex = 3 
End Sub 

Function Test() 

    With Application.Caller   
     .Parent.Evaluate "Changeit(" & .Address(False, False) & ")" 
    End With 
    Test = "Hello" 

End Function 

참조 : Using a UDF in Excel to update the worksheet 트릭을 수행

+0

! @tim에게 감사합니다. 그것은 글꼴 색상을 변경하는 것이 얼마나 쉬운지를 예상했을 때보 다 더 복잡합니다 ... 적어도 작동합니다. – Ryan

+1

어떤 이유로 글꼴 ​​색상은 함수에서 직접 작동하는 것 중 하나입니다. 거의 모든 것이 다른 방법으로 해결해야합니다. –