Managed to solve the issue.
Tried
- wiring in the data using arrays
- setting Application.ScreenUpdating to False
And that helped a little. But what really did the trick is
- Application.Calculation = Excel.XlCalculation.xlCalculationManual
so my code now looks like this:
private void Rebind(myWorksheet currWorksheet, out Excel.Workbook workbook)
{
currWorksheet.Application.Calculation = Excel.XlCalculation.xlCalculationManual
currWorksheet.Application.ScreenUpdating=False
foreach (string connectedWorksheet in currWorksheet.Dependencies)
{
myWorksheet ws = DataHelper.FindWorksheetFromList(connectedWorksheet, this.WorksheetList);
Excel.Worksheet sheet = DataHelper.FindWorksheetFromWorkbook(connectedWorksheet,workbook);
this.LoadData(sheet,ws);
}
Excel.Worksheet sheetMain = DataHelper.FindWorksheetFromWorkbook(currWorksheet.WorksheetName,workbook);
this.LoadData(sheetMain,currWorksheet);
currWorksheet.Application.Calculation = Excel.XlCalculation.xlCalculationAutomatic
currWorksheet.Application.ScreenUpdating=True
}