Warum ist dieser Code so langsam?
21.11.2019 09:21:15
HPG
ich habe mir ein Makro gebastelt, das aus einem Tabellenblatt mit knapp 54 000 Zeilen Diagramme erstellen soll. Es funktioniert auch soweit, nur dauert es länger, als ich erwartet hätte. Der Code für ein Diagramm sieht folgendermaßen aus:
With Daten.Shapes.AddChart(xlXYScatter).Chart
.SetSourceData Source:=Range("Daten!G:G,Daten!M:M")
.ChartTitle.Delete
.Legend.Delete
.SeriesCollection(1).MarkerStyle = 2
.SeriesCollection(1).MarkerSize = 2
.Axes(xlValue).HasTitle = True
.Axes(xlValue).AxisTitle.Caption = "Leistung [kW]"
.Axes(xlCategory).HasTitle = True
.Axes(xlCategory).AxisTitle.Caption = "Windgeschwindigkeit [m/s]"
.ChartArea.Copy
.Parent.Delete
End With
Für diesen Arbeitsschritt braucht Excel ca. 2-3 Minuten, und da es mehrere Diagramme sind, dauert es halt insgesamt nervig lange. Und wenn ich versuche, noch größere Datenmengen (ca. 160 000 Zeilen) zu bearbeiten, bekomme ich eine Meldung, das der Arbeitsspeicher nicht ausreicht.
Kann man an dem Code noch etwas optimieren oder liegt das Problem tatsächlich am Rechner o.ä.?
Schönen Gruß
Hanns