Johnny C
Well-known Member
- Joined
- Nov 7, 2006
- Messages
- 1,069
- Office Version
- 365
- Platform
- Windows
I've a large unwieldy workbook I've been asked to modify.
It has about 60 tabs with project financials and a couple of sheets that pull data from them using INDIRECT. I can't get rid of the INDIRECTS (it's not my workbook). There's about 200 rows with 20 columns of these indirects.
The project financials are only updated once per month, and they use SUMIFS on a decent sized table of data (a thousand rows/month).
So, as these don't need recalculating, I tried using Calculate sheet Shift-F9. It seemed to take a very long time.
I've run a series of tests on it. If I calculate each sheet in turn and time it with VBA, the sheet I'm working on takes 1.25secs. total time for all sheets is 7 secs.
If however I run a timed sheet.calculate on the same sheet, it's taking 10 secs.
I know that due to the volatility of INDIRECT this is what's slowing it down as XL will only use a single processor thread if it's calculating an INDIRECT. Looking at the MS webpage about it, it seems that the first thing XL does is have a look at the dependency tree and optimise it. is it the case that because the dependency tree isn't optimised when I run sheet.calculate (or shift-F9)?
What's going on, it seems crazy that the single sheet takes longer than the full workbook.
It has about 60 tabs with project financials and a couple of sheets that pull data from them using INDIRECT. I can't get rid of the INDIRECTS (it's not my workbook). There's about 200 rows with 20 columns of these indirects.
The project financials are only updated once per month, and they use SUMIFS on a decent sized table of data (a thousand rows/month).
So, as these don't need recalculating, I tried using Calculate sheet Shift-F9. It seemed to take a very long time.
I've run a series of tests on it. If I calculate each sheet in turn and time it with VBA, the sheet I'm working on takes 1.25secs. total time for all sheets is 7 secs.
If however I run a timed sheet.calculate on the same sheet, it's taking 10 secs.
I know that due to the volatility of INDIRECT this is what's slowing it down as XL will only use a single processor thread if it's calculating an INDIRECT. Looking at the MS webpage about it, it seems that the first thing XL does is have a look at the dependency tree and optimise it. is it the case that because the dependency tree isn't optimised when I run sheet.calculate (or shift-F9)?
What's going on, it seems crazy that the single sheet takes longer than the full workbook.