Ich habe einige Probleme damit, herauszufinden, wie man ein Array innerhalb einer UDF von einer anderen UDF zurückgibt. Die hier ist eine einfache UDF für den exponentiellen gleitenden Durchschnitt, und ich versuche, das Array in eine andere UDF zurückzugeben, aber ich bekomme den Fehler #WERT!. Ich habe das Gefühl, dass es eine einfache Lösung gibt, die ich nicht sehe. Jede Hilfe wird sehr geschätzt, danke.
Function ema(arg1 As Variant, ByVal lngth As Long) As Variant
x = arg1
dim avg As Double
avg = 1
Dim arrema As Variant
arrema = Array()
ReDim arrema(1 To UBound(x, 1), 1 To 1)
For j = 1 To (UBound(x, 1) - lngth)
For i = (1 + j - 1) To (lngth + j - 1)
avg = (WorksheetFunction.Index(x, i, 1) + 1) * avg
Next i
arrema(j, 1) = avg ^ (1 / lngth)
avg = 1
Next j
'ema = avg ^ (1 / lngth)
ema = arrema
End Function
Function test(arg2 As Variant, xlength As Long)
Dim arra As Variant
'Call ema(arg2, xlength)
Dim arr As Variant
arr = Array()
ReDim arr(1 To UBound(arg2, 1), 1 To 1)
arra = ema(arg2, xlength)
For i = 1 To UBound(arg2, 1) - xlength
arr(i, 1) = arra(i, 1)
Next i
test = arr
End Function