Hallo Community,
ich versuche eine eigene Matrixfunktion nach Excel-Manier zu implementieren. Hier ist ein vereinfachtes Bespiel für Demo-Zwecke:
Option Explicit
Option Base 1
Option Compatible
Option VBASupport 1
Function Matrix_1(Zahl As Double) As Variant
Dim Erg(1 To 2, 1 To 2) As Double
Erg(1,1) = 11*Zahl
Erg(1,2) = 12*Zahl
Erg(2,1) = 21*Zahl
Erg(2,2) = 22*Zahl
Matrix_1 = Erg
End Function
Die Funktion Matrix_1 soll das Ergebnis direkt in die Tabellenzellen schreiben.
Wenn ich z.B. in die Zelle A1
den Wert 5
eingebe, und die 4 Zellen A2:B3
markieren, die 5
aus A1
als Funktionsargument auswähle: =MATRIX_1(A1)
und meine Eingabe mit <Strg><Shift><Enter>
abschließe, erscheint lediglich eine (korrekte) Zahl 55
als Ergebnis in Zelle A2
. Und das Ergebnis steht nicht in {..}
ist also keine Matrix.
Das gleiche Procedere ist in Excel erfolgreich, in der neusten 32-Bit LibreOffice-Version 7.1.4.2 jedoch nicht.
Beim Debuggen im Einzelschritt-Modus mit <F8
> erhalte ich darüber hinaus bereits in der Zeile
Erg(1,1) = 11*Zahl
einen unverständlichen BASIC-Laufzeitfehler ‚499‘: Argument ist nicht optional.
Was mache ich falsch? Und vor allem wie wäre es richtig?
Vielen Dank im Voraus!
Gruß, Andreas