Use uma função definida pelo usuário para validação de dados

Use uma função definida pelo usuário para validação de dados

Criei um intervalo nomeado que é o resultado de uma função definidora de usuário.

Digamos que minha raiva tenha um nome Liste tenha três itens, se eu selecionar três células e entrar =Liste pressionar Ctrl+ Shift+ Enter, recebo meus três itens nas células... então tudo parece bem.

Se eu tentar usar o intervalo como fonte de validação de dados (como uma lista), recebo a mensagem "A fonte atualmente avalia como um erro".

Isso é uma limitação do Excel? Se não, o que está errado e como posso fazer?

A função:

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

O intervalo nomeado é definido comotestarrayreturn()

Responder1

TL; DR não é possível conforme descrito (cf.esta postagem no SO).

Resposta mais longa: há uma solução alternativa. A função definida pelo usuário deve retornar Rangenão uma matriz de valores. Então a solução é usar uma planilha descartável para “colar” os dados temporários.

Como evitar dados temporários é o motivo exato pelo qual eu queria usar uma UDF, isso é uma pena, mas pode ser útil para outros.

informação relacionada