Macro wird extrem langsam
02.08.2008 20:53:29
BUGGI1000
3. Spalte anfängt extrem langsam zu werden. Was möchte ich tun? Ich habe 2 Datenreihen, die
etwa 10.000 Datensätze jeweils beinhalten. Aus beiden Reihen möchten ich Korrelationen rechnen,
über die Korrel() Funktion in Excel. Ich möchte aber nicht die Korrelation über die gesamte Reihe
berechnen, sondern über einen verschiebbaren Bereich, der variabel sein soll, nennen wir den Bereich
a als Int. Somit spannen sich beide Datenreihen in 2 Spalten über 10.000 Zeilen auf, aus denen
Korrelationen in Abhängigkeit von a in Spalten X gerechnet werden sollen. Die Spaltenanzahl X beträgt
aktuell etwa 200, so dass ich ca. 10.000 x 200 = 2.000.000 Korrelationseinträge in den einzelnen
Zellen besitze. Starte ich das Macro, fängt er "schnell" an, bis er bei Spalte 3 (ca. Mitte) ist, ab dort wird
das Macro extrem langsam. Egal wo ich das Macro starten lasse, nach ca. 2,5 Spalten scheint irgendein
"Puffer" vollgelaufen zu sein und das System steht praktisch. Excel schließen und neustarten schafft
Abhilfe, bis zur nächsten 2,5. Spalte. Was kann ich hier tun?
Sub Test()
Dim i As Integer
Dim a As Integer
Dim b As Variant
'Range("W3663:IV15027").Select
'Selection.ClearContents
For i = 0 To 235
b = Range("w3657").Offset(0, i).Value
Dim bString As String
bString = b - 1
For a = b To 11365
Range("w3661").Offset(a, i).Select: ActiveCell.FormulaR1C1 = "=CORREL(R[-" + _
bString + "]C13:R[0]C13,R[-" + bString + "]C14:R[0]C14)"
Next a
Next i
End Sub