ich habe mir eine UDF geschrieben. Hintergrund ist, dass ich verschiedene Ergebnisreihen habe die eine unterschiedliche Anzahl an x bzw. y Werten haben. Um die Datenreihen vergleichbar zu machen werden die Ergebnisse sozusagen normiert auf eine bestimmte Anzahl an Datenpunkten. Da es das erste mal ist, dass ich eine Array-UDF schreibe, würde ich gern wissen wie ich nun die berechnete Matrix aus VBA nach Excel übergebe?
https://www.herber.de/bbs/user/89639.xlsm
So sieht der Code aus:
Function Normfunktion(x, y, min As Double, max As Double, n As Single) As Double
Dim delta_s As Double, delta_s_original As Double, xAnz, yAnz, xVek, yVek, xyResultMatrix(), i _
As Integer, j As Integer
Dim skl As Double, sgr As Double, sges As Double, Fkl As Double, Fgr As Double, Fges As Double
delta_s = (max - min) / (n - 1)
delta_s_original = delta_s
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
xAnz = x.Count
yAnz = y.Count
j = 1
'Kontrolle der Eingabe
If (xAnz xAnz) Then
MsgBox "Anzahl x-Werte und Anzahl y-Werte muss gleich gross sein"
Normfunktion = CVErr(xlErrValue)
Exit Function
End If
'übergeben der Wertepaare
xVek = x 'Vektor des ursprünglichen Weges
yVek = y 'Vektor der ursprünglichen Kraft
ReDim xyResultMatrix(1 To n, 1 To 2) 'Ergbnismatrix Spalte 1 Weg, Spalte 2 normierte Kraft
xyResultMatrix(1, 1) = 0 'erster Wert des Weges ist 0
xyResultMatrix(1, 2) = 0 'erster Wert der Kraft ist 0
For i = 2 To n 'Zuweisung des normierten Weges
xyResultMatrix(i, 1) = xyResultMatrix(i, 1) + delta_s
delta_s = delta_s_original + delta_s
Next i
For i = 2 To n
Do Until xyResultMatrix(i, 1) 0
If xVek(j, 1)