Wer mag, kann ja auch den Beweis führen:
Fill_It:
A1:
ZUFALLSMATRIX(20;;0;4) C1:
SUMME((A:A>=2)*(A:A<=3))Laufzeiten auf meinem alten Rechner:
Code:
Formeln dauern: 0,15234375
Durchlauf 1 dauert 0,078125
Durchlauf 2 dauert 0,06640625
Durchlauf 3 dauert 0,05859375
Durchlauf 4 dauert 0,06640625
Durchlauf 5 dauert 0,05859375
Durchlauf 6 dauert 0,06640625
Durchlauf 7 dauert 0,05859375
Durchlauf 8 dauert 0,06640625
Durchlauf 9 dauert 0,05859375
Fill_It_2:
A1:
ZUFALLSMATRIX(20;;0;4) C1:
SUMME((A1:A20>=2)*(A1:A20<=3))Laufzeiten
nicht messbar:
Code:
Formeln dauern: 0
Durchlauf 1 dauert 0
Durchlauf 2 dauert 0
Durchlauf 3 dauert 0
Durchlauf 4 dauert 0
Durchlauf 5 dauert 0
Durchlauf 6 dauert 0
Durchlauf 7 dauert 0
Durchlauf 8 dauert 0
Durchlauf 9 dauert 0
Verwendeter Code (Makro Quicky starten)
Modul Modul1Option Explicit
Sub Fill_It()
Range("A1").Formula2 = "=RANDARRAY(20,,0,4)"
Range("C1").Formula2 = "=SUM((A:A>=2)*(A:A<=3))"
End Sub
Sub Fill_It_2()
Range("A1").Formula2 = "=RANDARRAY(20,,0,4)"
Range("C1").Formula2 = "=SUM((A1:A20>=2)*(A1:A20<=3))"
End Sub
Sub Quicky()
Dim Start#, i&
Application.ScreenUpdating = False
Cells.Clear
Start = Timer
Call Fill_It
Debug.Print "Formeln dauern: " & Timer - Start
For i = 1 To 9
Start = Timer
Calculate
Debug.Print "Durchlauf " & i & " dauert " & Timer - Start
Next
Cells.Clear
Start = Timer
Call Fill_It_2
Debug.Print "Formeln dauern: " & Timer - Start
For i = 1 To 9
Start = Timer
Calculate
Debug.Print "Durchlauf " & i & " dauert " & Timer - Start
Next
End Sub