Verwenden einer benutzerdefinierten Funktion zur Datenvalidierung

Verwenden einer benutzerdefinierten Funktion zur Datenvalidierung

Ich habe einen benannten Bereich erstellt, der das Ergebnis einer benutzerdefinierten Funktion ist.

Nehmen wir an, mein Wutzustand trägt den Namen Listund besteht aus drei Elementen. Wenn ich drei Zellen auswähle, die Eingabetaste drücke =Listund Ctrl+ Shift+ drücke Enter, erhalte ich meine drei Elemente in den Zellen. Alles sieht also gut aus.

Wenn ich versuche, den Bereich als Datenvalidierungsquelle (als Liste) zu verwenden, erhalte ich die Meldung „Quelle wird derzeit als Fehler ausgewertet“.

Ist das eine Einschränkung von Excel? Wenn nicht, was ist falsch und was kann ich tun?

Die Funktion:

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

Der benannte Bereich ist definiert alstestarrayreturn()

Antwort1

TL;DR so wie beschrieben ist es nicht möglich (vgl.dieser Beitrag auf SO).

Lange(re) Antwort: Es gibt eine Problemumgehung. Die benutzerdefinierte Funktion muss einen RangeWert zurückgeben, nicht ein Array. Die Lösung besteht also darin, ein temporäres Arbeitsblatt zu verwenden, um temporäre Daten „einzufügen“.

Da das Vermeiden temporärer Daten genau der Grund ist, warum ich eine UDF verwenden wollte, ist das zwar schade, aber für andere kann es von Nutzen sein.

verwandte Informationen