About Virtualization, VDI, SBC, Application Compatibility and anything else I feel like
This feature was introduced in Excel 2007.
In the default settings, multi-threaded calculation is Enabled with "Use all processors on this computer".
On a physical desktop this would be the preferred setting since it will make formula calculation as fast as possible.
However on shared environments such as Citrix XenApp, Microsoft RDS and VDI this seems like a very bad setting since one user can use the full processing capacity and hinder other users.
Unfortunately changes to this setting are not stored in the registry or filesystem. So even when you change it through the GUI the settings are not retained when you close Excel. This sounds like a BUG in Excel.
As a workaround we can change this setting using VBA via the Application.MultiThreadedCalculation property.
To fix it permanently I placed the code in an .XLAM (Excel Add-In) and placed in in the Excel startup folder.
Private Sub Workbook_Open()
' Disable MultiThreaded Calculation '
Application.MultiThreadedCalculation.Enabled = False
' Other options '
' Automatic Mode '
' Application.MultiThreadedCalculation.ThreadMode = xlThreadModeAutomatic '
' Manual Mode '
' Application.MultiThreadedCalculation.ThreadMode = xlThreadModeManual '
' Use 2 CPU '
' Application.MultiThreadedCalculation.ThreadCount = 2 '
That fixes it:
For your convenience you can download the Excel Add in: DisableMultiThreading.zip (1989)
.NET .NET FrameWork Active Directory Altiris Apple Automation Manager Citrix Dell Delphi Excel Exchange Exchange2003 Exchange2010 Hack HP iOS Java LinkedIn Linux Lync MSI Office Office 2010 Passat Password PowerPoint PowerShell RES RNS510 SasLibEx SCOM Security Terminal Server ThinApp TSAdminEx VBS VCDS Visual Basic Visual Studio VMWare Volkswagen VW Windows PE Wordpress XenApp