데이터 유효성 검사를 위해 사용자 정의 함수 사용

데이터 유효성 검사를 위해 사용자 정의 함수 사용

사용자 정의 함수의 결과인 명명된 범위를 만들었습니다.

내 분노에 이름이 지정되고 세 개의 항목이 있다고 가정해 보겠습니다. List세 개의 셀을 선택하고 Enter 키를 누른 다음 + + 를 =List누르면 셀에 세 개의 항목이 표시되므로 모든 것이 괜찮아 보입니다.CtrlShiftEnter

범위를 데이터 유효성 검사 소스(목록)로 사용하려고 하면 "현재 소스가 오류로 평가됩니다."라는 메시지가 표시됩니다.

엑셀의 한계인가요? 그렇지 않다면 무엇이 잘못되었으며 어떻게 해야 합니까?

함수:

Public Function testarrayreturn() As Variant
    Dim Arr(2) As String
    Arr(0) = "a"
    Arr(1) = "b"
    Arr(2) = "c"

    testarrayreturn = Application.Transpose(Arr)
End Function

명명된 범위는 다음과 같이 정의됩니다.testarrayreturn()

답변1

TL;DR 설명된 대로 불가능합니다(참조:SO에 대한 이 게시물).

긴 답변: 해결 방법이 있습니다. 사용자 정의 함수는 Range값의 배열이 아닌 값을 반환해야 합니다. 따라서 해결책은 일회용 워크시트를 사용하여 임시 데이터를 "붙여넣기"하는 것입니다.

임시 데이터를 피하는 것이 UDF를 사용하고 싶었던 정확한 이유이기 때문에 안타깝지만 다른 사람들에게도 유용할 수 있습니다.

관련 정보