I know there are numerous threads on the forums about this error, but so far none have held the solutions.

I am getting this error:

Automation error
The object invoked has disconnected from its client

when trying to copy a worksheet to another book. Here is my code
VB Code:
  1. Public xlApp As Object 'Excel.Application
  2. Dim xlBook As Object 'Excel.Workbook
  3. Dim xlSheet As Object 'Excel.Worksheet
  4.  
  5. 'Constructor
  6. Public Sub Class_Initialize()
  7.     Set xlApp = CreateObject("Excel.Application")
  8.     xlApp.displayalerts = False
  9.     Exit Sub
  10. End Sub
  11.  
  12. Public Function OpenFile(FileName As String) As String
  13.     If xlApp.activeworkbook Is Nothing Then
  14.         Set xlBook = xlApp.workbooks.open(FileName)
  15.     Else
  16.         If Not xlApp.activeworkbook.fullname = FileName Then
  17.             xlApp.activeworkbook.Close savechanges:=False
  18.             Set xlBook = xlApp.workbooks.open(FileName)
  19.         End If
  20.     End If
  21.     xlApp.worksheets(1).Activate
  22.     Set xlSheet = xlApp.activesheet
  23.     OpenFile = xlSheet.Name
  24. End Function
  25.  
  26. Public Sub MergeBooks(Dest As String, Source As String)
  27.     Dim wbDest As Object
  28.     Dim wbSource As Object
  29.     Set wbDest = xlApp.activeworkbook
  30.     OpenFile (Dest) 'will close any open books
  31.     Set wbSource = xlApp.workbooks.open(Source)
  32.  
  33.     For Each xlSheet In wbSource.worksheets
  34.         If xlSheet.Name <> "Info" Then
  35.             'The Automation error occurs here
  36.             xlSheet.Copy after:=wbDest.worksheets(wbDest.worksheets.Count)
  37.         End If
  38.     Next xlSheet
  39.    
  40.     '(TODO) sheet 1("info") in both books contain a list, they need adding
  41. End Sub

Please help