One more thing to conside is Events, if one or more of those sheets have Worksheet_Chnage or Worksheet_Calculate event handlers each change that your code is doing will trigger them and your code need to wait till they return. On Error Go To lbl Error Dim b Events As Boolean, i Calc As Integer, b Scrn Upd As Boolean b Events = Application.