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 List
y tiene tres elementos, si selecciono tres celdas, entro =List
y 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 Range
valor, 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.