VBA function mit Array (von variabler groesse) Input und Output

Hallo Zusammen, ich verzweifel gerade hier ran: Ich moechte einer vba function ein array(eindimensional) uebergeben, und als Output ein zweidimensionales Array, bei dem die Diagonal sich aus den Input werten berechnet, alle anderen Werte sind null:

Von: 1        zu:  4  0  0
        1               0  4  0
        1               0  0  4

Die Groesse der beiden Arrays soll variabel sein (jeh nach Input, die gleiche groesse im Outputarray)
Ich bekomme hier leider nur Fehlermeldungen

Public Function createSplineArray(Steps() As Double) As Double

Dim i As Integer
Dim ArrayOne(UBound(Steps(1)), UBound(Steps(1))) As Double

For i = 1 To UBound(Steps(1))
ArrayOne(i, i) = 2 * (Steps(1) + Steps(2))
Next i
createSplineArray() = ArrayOne()
End Function

Vielen Dank fuer eure Hilfe!

Hallo Zusammen, ich verzweifel gerade hier ran: Ich moechte
einer vba function ein array(eindimensional) uebergeben, und
als Output ein zweidimensionales Array, bei dem die Diagonal
sich aus den Input werten berechnet, alle anderen Werte sind
null:
Von: 1        zu:  4  0  0
        1               0  4  0
        1               0  0  4
Die Groesse der beiden Arrays soll variabel sein (jeh nach
Input, die gleiche groesse im Outputarray)
Ich bekomme hier leider nur Fehlermeldungen

Hallo Moe,

bei Fehlermeldungen immer angeben welche Fehlernummer, Beschreibung, bei welcher Codezeile. Ggfs. noch weitere Infos zu variableninhalten im fehlerfall falls wichtig.

Nachfolgend deine Function und eine test-Routine.

Gruß
Reinhard

Option Explicit

Sub test()
Dim A(3) As Double, N As Integer, X(), Z As Integer, S As Integer, Mldg As String
Mldg = "A(): " & vbLf
For N = LBound(A) To UBound(A)
 A(N) = 2 \* N
 Mldg = Mldg & A(N) & " "
Next N
X = createSplineArray(A)
Mldg = Mldg & vbLf & vbLf & "X(): "
For Z = LBound(X, 1) To UBound(X, 1)
 Mldg = Mldg & vbLf
 For S = LBound(X, 2) To UBound(X, 2)
 Mldg = Mldg & Val(X(Z, S)) & " "
 Next S
Next Z
MsgBox Mldg
End Sub

Public Function createSplineArray(ByRef Steps() As Double)
Dim Z As Integer, S As Integer
ReDim arrSteps(UBound(Steps), UBound(Steps))
For Z = LBound(Steps) To UBound(Steps)
 For S = LBound(Steps) To UBound(Steps)
 arrSteps(Z, S) = IIf(Z = S, 2 \* (Steps(1) + Steps(2)), 0)
 Next S
Next Z
createSplineArray = arrSteps
End Function