It looks like this: It is a pain, if the program gets an error and crashes before it has switched the screen updating back on.
So it makes sense to use error handling to make sure that the updating is switched on no matter what.
In normal mode Excel will recalculate, if you change a cell value that affects other cell values.
This too can steal time, if you run a large application, and it is possible to switch off the automatic calculation: However you must consider, that if automatic calculation is switched off, Excel will not update cell values, so if your macro needs updated cell values, it is necessary to force a recalculation, either for a specific range: "Range("My Range"). Very often you can speed up execution by writing lean code. If you use recorded macros, it is usually possible to increase speed considerably by changing the code slightly.
You can also download a zip-compressed spreadsheet with the examples.
To unzip, right-click and select whatever Windows suggests to unzip the archive. You can do it "automatically" by putting code in the worksheet's code sheet.
For instance the following example of using the worksheet average function is much faster than any homemade average function: Dim r Cell as range Dim r Range as Range Set r Range = Range("A1: A10") For Each r Cell in r Range Msg Box r Cell. Value Next i If you have many operations on big tables (Ranges), it can sometimes be much faster to copy the range to an array, make the operations in the array and then copy back.