Utilice una función definida por el usuario para la validación de datos

Utilice una función definida por el usuario para la validación de datos

Creé un rango con nombre que es el resultado de una función de definición de usuario.

Digamos que mi rabia tiene un nombre Listy tiene tres elementos, si selecciono tres celdas, entro =Listy presiono Ctrl+ Shift+ Enter, obtengo mis tres elementos en las celdas... así que todo se ve bien.

Si intento utilizar el rango como fuente de validación de datos (como una lista), aparece el mensaje "La fuente actualmente se evalúa como un error".

¿Es esto una limitación de Excel? Si no, ¿qué está mal y cómo puedo hacerlo?

La función:

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

El rango nombrado se define comotestarrayreturn()

Respuesta1

TL;DR no es posible como se describe (cf.esta publicación en SO).

Respuesta (más) larga: hay una solución. La función definida por el usuario debe devolver un Rangevalor, no una matriz. Entonces la solución es utilizar una hoja de trabajo desechable para "pegar" datos temporales.

Dado que evitar datos temporales es la razón exacta por la que quería usar una UDF, es una lástima, pero puede ser útil para otros.

información relacionada