2013-07-03 3 views
0

다음 사용자 정의 VBA 함수는 특정 오류를 제공하지 않지만 값을 반환하지 않습니다. 나는 이유를 모른다. 누구든지 작동하도록이 코드를 수정하는 방법을 제안 할 수 있습니까? 정말 고마워!배열의 요소 값 변경 VBA

Public Function mytest(myrange As Range) 

myrange(1).Value = myrange(1).Value * 44 

mytest = myrange(1).Value 

End Function 

예를 들어 다음과 같이 셀에서이 함수를 호출합니다. 값을 포함 할

=mytest(A1) 

셀 A1, 나는이 함수가 리턴 (440)

+0

이 방법은 일할 수있는 (그리고하지 않는 이유 앤디 설명), 입력 범위의 변경이 셀 값까지 등 다시 입력을 증가 할 재 계산, 등, 트리거 할 경우에도 넘치며 오류가 발생했습니다. –

답변

1

당신이 전화 사용자 정의 함수의 가치를 희망 10. 말/(을 추가 할 수 없습니다 워크 시트에서 사용 :없이 복잡한 win-api 호출과 같은 외부 도움말)은 응용 프로그램 환경을 변경합니다. 즉, 다른 셀 (값 또는 서식)을 변경하는 셀에서 UDF를 사용할 수 없습니다.

이렇게하면 다른 셀을 변경하는 Excel 기능이 없습니다.

셀 값을 변경하려면 하위- 프로 시저를 만들고 실행해야합니다.

: 워크 시트에서 사용하려는 기능은 Excel 기능처럼 작동해야합니다. 계산을 수행하고 값을 리턴합니다. 예를 들면 :

Public Function MyTest(myRange As Range) As Double 
    'return a value by assigning it to the function name: 
    MyTest = myRange(1).Value * 44 
End Function 
+0

그래서 가장 간단한 방법은 무엇입니까? myrange의 값이 고정되어있어 기쁩니다. 그러나 포함 된 값에 곱셈과 같은 특정 연산을 수행하고 결과를 출력하려고합니다. – user235319

+0

@andyg는 * 복잡하지는 않지만 * 할 수는 있지만 조심성이 있습니다. http://stackoverflow.com/questions/8520732/i-dont-want-my-excel-add-in-to-return-an-array-instead-i-need-a-udf-to-change/8711582# 8711582 – brettdj

+0

@brettdj Gosh, 예, win-api 호출로 Excel을 피아노로 바꿀 수 있습니다.) 그렇지만 나는 그 점을 우아하게 인정합니다. –