Option Explicit

Private sinFTime(1 To 4) As Single, sinETime(1 To 4) As Single
Private Sh As Worksheet

Sub Speed_Test_Calculation3() Dim i As Long, ii As Long With Application .ScreenUpdating = False Set Sh = .Worksheets(2) With Sh .Cells.ClearContents For i = 33 To 42 Call TestA Call TestB .Range("B1").Formula = "=A1" Call TestC Call TestD .Range("B1").ClearContents For ii = 1 To 4 Worksheets(1).Cells(i, ii + 1).Value = sinETime(ii) Next Next End With .ScreenUpdating = True End With End Sub
Private Sub TestA() Dim i As Long sinFTime(1) = Timer For i = 1 To 10000 Sh.Range("A1").Value = i Next sinETime(1) = Timer - sinFTime(1) Sh.Range("A1").ClearContents End Sub
Private Sub TestB() Dim i As Long Application.Calculation = xlCalculationManual sinFTime(2) = Timer For i = 1 To 10000 Sh.Range("A1").Value = i Next sinETime(2) = Timer - sinFTime(2) Application.Calculation = xlCalculationAutomatic Sh.Range("A1").ClearContents End Sub
Private Sub TestC() Dim i As Long sinFTime(3) = Timer For i = 1 To 10000 Sh.Range("A1").Value = i Next sinETime(3) = Timer - sinFTime(3) Sh.Range("A1").ClearContents End Sub
Private Sub TestD() Dim i As Long Application.Calculation = xlCalculationManual sinFTime(4) = Timer For i = 1 To 10000 Sh.Range("A1").Value = i Next sinETime(4) = Timer - sinFTime(4) Application.Calculation = xlCalculationAutomatic Sh.Range("A1").ClearContents End Sub