Clever-Excel-Forum

Normale Version: gibt es einen schnelleren code?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo,

@Ralf

Doch ich glaube dir. Ich hatte auf diesen Teil nicht geachtet und es war mir auch nicht bewusst.

Mit der Nutzung der Arrays und des Dictionary wurde die Laufzeit bei vollem Datenbestand von 174 Sekunden auf 0,375 Sekunden reduziert.
Mit deiner Ergänzung könnte man (bei <100 Zellen) noch ca. 0,0001 Sekunden sparen. Blush
Sollte auch nur eine Zusatzinfo sein und bezog sich eigentlich auf den Threadtitel "schnellerer Code".
(der ja durchaus mal eine Fundstelle bei Tante G. sein könnte)

Bei den paar Zellen ist der Unterschied natürlich homöopathisch.  :90:

Gruß Ralf
@RPP

Ich glaube dich nicht.


Code:
Sub M_snb()
   sn = UsedRange.Formula
   
   t0 = Timer
   For j = 1 To 100
      UsedRange.Value = UsedRange.Value
      UsedRange.Formula = sn
   Next
   t1 = Timer - t0
   
   t2 = Timer
   For j = 1 To 100
      UsedRange.Copy
      UsedRange.PasteSpecial -4163
      UsedRange.Formula = sn
   Next
   t3 = Timer - t2
   
   MsgBox t1 & vbLf & t3
End Sub

Formula A: "=G1"
Range: A1:F300

Value=Value 1.87
Pastespecial 3.35

Rand() is volatile das könnte interferieren.
Ich musste schmunzeln, snb!
Du weist, dass ich Deine Kompetenz sehr schätze!
Aber:
Beweisführung geht anders!
Du solltest das Schreiben der Formel weglassen, dann klappt es auch mit der Vergleichbarkeit der Methoden.

Ich gehe davon aus, dass MS mit der .PasteSpecial-Methode den Link zur ursprünglichen Formel löscht, so dass sie erst mühsam wieder in den Bereich geschrieben werden muss (incl. Neuberechnung).

Deshalb habe ich das Löschen und Neuschreiben in den Bereich über eine externe Sub() gemacht und dies von der Zeitberechnung ausgeschlossen.

Gruß Ralf
@RPP

Wenn jeder Prozedur usedrange.formula=sn enthällt sollte das ausgleichen.

Aber ohne ist pastespecial ca. 5.3 fach schneller.

Bitte erklären Sie mir das..   Undecided
Zitat:Bitte erklären Sie mir das.. 

Nö! Mache ich nicht! :19:
Dazu müsste ich in Redmond angestellt sein.
Bis dahin bleibt uns Beiden nur die Erkenntnis, dass die Programmierer einen schnelleren Weg gefunden haben, isn't it?

Gruß Ralf
Seiten: 1 2 3