Ich habe eine Funktion in VBA, die ein Array von Zeichenfolgen generiert. Es funktioniert einwandfrei, wenn es von einer anderen VBA-Funktion aufgerufen wird, aber nicht beim Aufruf aus dem Arbeitsblatt.Array-Funktion in Excel VBA
Hier ist, wie es verwendet werden soll:
- wählen A1: A3
- Schreib in der Bearbeitungsleiste
=Test()
, dannCtrl-Shift-Enter
traf es um eine Array-Funktion - A1
A
enthalten sollte, sollte A2 enthaltenB
, und A3 sollte enthaltenC
Wenn ich das tatsächlich versuche, es pu ts A
in allen drei Zellen des Arrays. Wie kann ich die Daten von Test
in die verschiedenen Zellen des Arrays erhalten?
Für diejenigen, die es sehen möchten, hier ist der Code der Funktion. Beachten Sie, dass die Funktion problemlos funktioniert, wenn sie von anderen Funktionen aus aufgerufen wird.
Function Test() As String()
Dim a(1 To 3) As String
a(1) = "A"
a(2) = "B"
a(3) = "C"
Test = a
End Function
Ich hatte keine Ahnung, dass die Standardrichtung eines Arrays eher nach rechts als nach unten gerichtet war. – Joe
Leider scheint es keinen einfachen automatischen Weg für Excel zu geben, das Array horizontal oder vertikal zu füllen. Es könnte jedoch ein paar Tricks geben. –
Yup, wie @andy Holaday darauf hinweist, hat Chip Pearson auch das horizontale/vertikale Dilemma herausgefunden. –