AW: Es geht auch ohne Hilfsbereich
20.03.2014 21:26:04
Frank
Guten Abend Dieter,
ich habe nun versucht Dein Wissen in eine Function umzusetzen... Da gibt es einiges was verbessert werden könnte in meinem Code. Zum Beispiel das Finden des letzt beschriebenen Wertes im Array... Ich löse das gerade über eine Schleife und suche so lange bis die nächste Zelle leer ist. Nun ja - Anfänger. Darüber hinaus versuche ich mich gerade an dem Befehl Redim Preserve... Da bekomme ich aber immer eine Sytaxfehlermeldung bzw. bricht der Code dort ab (ReDim Preserve yVek(1 To m, 1 To 1)). In der Not weise ich die Vektoren also nochmals deinen deklarierten Vektoren xWerte und yWerte zu.
Das ganze schließe ich mit Strg+Alt+Enter ab. Als Resultat bekomme ich im "Ergebnisarray" in Excel immer nur das erste Polynom ausgegeben. Könntest du mir eventuell sagen was ich falsch mache?
Function RGP3(x, y, Polynomgrad)
Dim anzahl As Long
Dim Koeffizienten() As Variant
Dim i As Long, m As Long
Dim letzteZeile As Long
Dim xWerte() As Variant
Dim yWerte() As Variant
Dim ws As Worksheet
Dim zeile As Long
Dim xVek, yVek
xVek = x
yVek = y
i = 1
Do Until IsEmpty(xVek(i, 1)) = True
If i = AnzX Then
Exit Do
Else
i = i + 1
End If
Loop
If IsEmpty(xVek(i, 1)) = True Then
m = i - 1
Else
m = i
End If
ReDim xWerte(1 To m, 1 To Polynomgrad)
ReDim yWerte(1 To m, 1 To 1)
'ReDim Preserve yVek(1 To m, 1 To 1)
i = 1
For zeile = 1 To m
For i = 1 To Polynomgrad
xWerte(zeile, i) = xVek(zeile, 1) ^ i
Next i
yWerte(zeile, 1) = yVek(zeile, 1)
Next zeile
Koeffizienten = Application.WorksheetFunction.LinEst(yWerte, xWerte)
RGP3 = Koeffizienten
End Function
Viele Grüße und einen schönen Abend wünscht
Frank