Herbers Excel-Forum - das Archiv
Skuriles Verhalten beim Plotten von Funktionen

|
Betrifft: Skuriles Verhalten beim Plotten von Funktionen
von: Florian
Geschrieben am: 12.10.2003 20:56:00
Hallo liebe Leute,
Folgende Methode soll testweise x und y-Arrays erstellen
und danach plotten.
Vielleicht mache ich da ja was grundlegend, falsch, aber merkwürdigerweise
ist Excel sehr anspruchsvoll darin, welche Art von Arrays den Variablen
SeriesCollection(*).*Values
gegeben werden dürfen.
In untenstehendem Code erzeuge ich die Werte
x = (0.1,...,10)
und y = sin(x)
Wenn dass z.B. "naiv" für Arrays der Länge 15 macht, klappt das nicht
(Fehlermeldung: "Values-Eigenschaft ... kann nicht festgelegt werden"), bei
der Länge 10 verkraftet Excel es noch. Bei der Funktion *^2 gibt's auch
keine Probleme.
Woran liegt's?
Was tun???
Danke!
Beste Grüße, Florian
Sub wasGehtdennHierab()
Dim n As Integer, str As String
str = ActiveSheet.Name
n = 20
Dim x() As Double, y() As Double
ReDim x(1 To n)
ReDim y(1 To n)
Dim i As Integer
For i = 1 To n
x(i) = i / 10
y(i) = Sin(x(i))
' bei Auskommentieren der nächsten Zeile klappt's nicht mehr...
y(i) = Round(y(i), 4)
Debug.Print (y(i))
Next i
' chart...
Dim ch As Chart
Set ch = Charts.Add
ch.ChartType = xlXYScatter
ch.SeriesCollection.NewSeries
ch.SeriesCollection(1).XValues = x
ch.SeriesCollection(1).Values = y
ch.Location Where:=xlLocationAsObject, Name:=str
End Sub
Betrifft: AW: Skuriles Verhalten beim Plotten von Funktionen
von: RAnton
Geschrieben am: 12.10.2003 22:57:30
Hallo Florian,
versuchs mal damit:
WorksheetFunction.Round(y(i), 4)
Gruß
RAnton
Betrifft: AW: Skuriles Verhalten beim Plotten von Funktionen
von: Florian
Geschrieben am: 13.10.2003 14:08:18
Hallo!
Die Antwort verstehe ich nicht ganz. Mein Problem besteht *nicht*
darin, dass ich Zahlen runden möchte. Oder habe ich die
Antwort nicht kapiert?
Gruß, Florian
Betrifft: AW: Skuriles Verhalten beim Plotten von Funktionen
von: RAnton
Geschrieben am: 14.10.2003 09:22:53
Hallo Florian,
die Funtion Round(..), so wie du sie hingeschrieben hast existiert in Office97 nicht.
Daher die Ersetzung durch WorksheetFunction.Round()
Gruß
RAnton