I was wondering what I could do to improve the performance of Excel automation, as it can be quite slow if you have a lot going on in the worksheet...
Here's a few I found myself:
- ExcelApp.ScreenUpdating = false-- turn off the redrawing of the screen
- ExcelApp.Calculation = Excel.XlCalculation.xlCalculationManual-- turning off the calculation engine so Excel doesn't automatically recalculate when a cell value changes (turn it back on after you're done)
- Reduce calls to - Worksheet.Cells.Item(row, col)and- Worksheet.Range-- I had to poll hundreds of cells to find the cell I needed. Implementing some caching of cell locations, reduced the execution time from ~40 to ~5 seconds.
What kind of interop calls take a heavy toll on performance and should be avoided? What else can you do to avoid unnecessary processing being done?
 
     
     
     
     
     
     
     
     
    