Gleichung der Trendlinie nicht gerundet!
19.06.2015 16:22:01
Carlo
Ich habe ein Problem mit dem Auslesen der Koefizienten einer Trenliniegleichung. Im Diagramm werden die Werte ungerundet aufgelistet, in der Tabelle (Anhang "D4:D7") jedoch werden sie gerundet dargestellt. Hier die entsprechende Code:
...
With co.Chart
.ChartType = xlXYScatterSmoothNoMarkers
.SeriesCollection.NewSeries
.SeriesCollection(1).XValues = Range("A2: A220")
.SeriesCollection(1).Values = Range("B2: B220")
.SeriesCollection.NewSeries
.SeriesCollection(1).Trendlines.Add(Type:=xlPolynomial, Order:=6, Forward:=0, Backward:=0, DisplayEquation:=True, DisplayRSquared:=False).Select
co.Chart.SeriesCollection(1).Trendlines(1).DataLabel.NumberFormat = "00000000.00000000000000000"
arrB = Koeff (co.Chart.SeriesCollection(1).Trendlines(1).DataLabel.Characters.Text, 6)
objSh.Range("q1").Value = co.Chart.SeriesCollection(1).Trendlines(1).DataLabel.Text
objSh.Cells(2, 4).Resize(UBound(arrB), 1) = Application.Transpose(arrB)
End With
...
Function Koeff(strT As String, Grad As Byte)
Dim strZ As String, arrA, arrB() As Double, ii As Long
ReDim arrB(Grad)
strZ = Replace(Replace(strT, "+ ", "+"), "- ", "-")
If Left(strZ, 1) = "y" Then strZ = Trim(Right(strZ, Len(strZ) - 1))
If Left(strZ, 1) = "=" Then strZ = Trim(Right(strZ, Len(strZ) - 1))
arrA = Split(strZ, " ")
For ii = 0 To UBound(arrA)
Select Case InStr(arrA(ii), "x")
Case 0: arrB(0) = arrA(ii)
Case Len(arrA(ii)): arrB(1) = Left(arrA(ii), Len(arrA(ii)) - 1)
Case Else: arrB(Right(arrA(ii), 1)) = Left(arrA(ii), Len(arrA(ii)) - 2)
End Select
Next ii
Koeff = arrB
End Function
Hier das Bild:
Im Diagramm ungerundet in den Zellen (D4:D7)gerundet.
Ist es prinzipiell nicht möglich die genauen Zahlen zu bekommen oder ist etwas falsch gedacht?
Freue mich auf eine Antwort
Grusz Carlo