title: excel VBA error: The object invoked has disconnected from its clients
body: <p>It seems a normal question and I have searched and tried many suggestions here but the error persists. I want to copy a "case1" sheet from current workbook to an existing workbook(file name is "workbook2.xlsx", it has a worksheet named "case2"), then save the workbook and close it. Sometimes it works well, but most of the time I kept getting the same error. In fact I did not change any code so I don't know where went wrong.  </p>
  
  <p>The error shows "The object invoked has disconnected from its clients". It always breaks in the same place: </p>
  
  <blockquote>
    <p><code>ThisWorkbook.Sheets("case1").Copy Before:=ActiveWorkbook.Sheets("Case2")</code></p>
  </blockquote>
  
  <pre><code>Sub CopySheet()
  
      Application.ScreenUpdating = False
      Application.DisplayAlerts = False
  
  
  
      'open existing "workbook2.xlsx"
      Workbooks.Open filename:="c:\workbook2.xlsx"
  
      'copy a sheet named "case1" from current workbook to "workbook2.xlsx" which already has a sheet named "case2"
      ThisWorkbook.Sheets("case1").Copy Before:=ActiveWorkbook.Sheets("Case2")
  
      'close "workbook2.xlsx"
      Workbooks("workbook2.xlsx").Activate
      ActiveWorkbook.Close SaveChanges:=True
  
      Application.ScreenUpdating = True
      Application.DisplayAlerts = True
  
  End Sub
  </code></pre>