Excel - Linest < Tabellenkalkulationen < Anwendungsprogramme < Praxis < Informatik < Vorhilfe
|
Aufgabe | Public Function Fehlerkurve(Temperatur As Double, xWerte As Excel.Range, yWerte As Excel.Range) As Double
Sheets("Tabelle12").Activate
Fehlerkurve = WorksheetFunction.LinEst(xWerte, yWerte)
End Function |
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Hallo!
Ich will die Funktion rgp bzw. Linest in VBA anwenden und mache irgendeinen Fehler.
Mein Ziel ist es, von einer Temperatur den Fehler in C° auszugeben, dabei ist die Temperatur immer unterschiedlich. Da der Fehler erst ab 400°C linear steigt, muss ich eine Abfrage reinbringen (diese ist oben noch nicht definiert), dass wenn die Temperatur <=400°C ist, ist der Fehler 1°C, ansonsten soll er mit Hilfe einer linearen Regression bestimmt werden.
In Excel habe ich das schon ausprobiert und das klappt prima mit der Funktion
SUMME(rgp(I19:I22;J19:J22 )*{Temperatur;1})
Allerdings klappt das in VBA nicht, was mache ich konkret falsch?
Danke
Dateianhänge: Anhang Nr. 1 (Typ: JPG) [nicht öffentlich]
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 20:26 Mo 18.10.2010 | Autor: | rainerS |
Hallo!
> Public Function Fehlerkurve(Temperatur As Double, xWerte As
> Excel.Range, yWerte As Excel.Range) As Double
> Sheets("Tabelle12").Activate
> Fehlerkurve = WorksheetFunction.LinEst(xWerte, yWerte)
> End Function
> Ich habe diese Frage in keinem Forum auf anderen
> Internetseiten gestellt.
>
> Hallo!
> Ich will die Funktion rgp bzw. Linest in VBA anwenden und
> mache irgendeinen Fehler.
> Mein Ziel ist es, von einer Temperatur den Fehler in C°
> auszugeben, dabei ist die Temperatur immer unterschiedlich.
> Da der Fehler erst ab 400°C linear steigt, muss ich eine
> Abfrage reinbringen (diese ist oben noch nicht definiert),
> dass wenn die Temperatur <=400°C ist, ist der Fehler 1°C,
> ansonsten soll er mit Hilfe einer linearen Regression
> bestimmt werden.
> In Excel habe ich das schon ausprobiert und das klappt
> prima mit der Funktion
> SUMME(rgp(I19:I22;J19:J22 )*{Temperatur;1})
> Allerdings klappt das in VBA nicht, was mache ich konkret
> falsch?
Schwer zu sagen, ohne die Fehlermeldung zu sehen. Zwei Ideen:
1. Der Rückgabewert von WorksheetFunction.LinEst ist nicht vom Typ Double sondern vom Typ Variant. Zuweisung an die Double-Variable Fehlerkurve dürfte einen Fehler produzieren.
2. Statt des Aufrufs von Application.WorksheetFunction.Linest kannst du deine Funktion auch wie von Hand einfügen, also etwas in dieser Art:
ActiveSheet.Cells(15,16).Value = "=SUMME(rgp(I19:I22;J19:J22 )*{Temperatur;1})"
Viele Grüße
Rainer
|
|
|
|
|
Hallo!
Danke für deine schnelle Antwort, hab die verschiedenen Versionen mal ausprobiert und habe es hinbekommen!
|
|
|
|