Yo tengo ese mismo problema en varias de mis aplicaciones, y lo resuelvo de esta forma:
Código:
cTemp = Left(App.Path, 2) & "\FICHEROTEMPORAL.xls"
' Borro este fichero si lo tengo creado anteriormente
DeleteAFile (cTemp)
cFich = App.Path & "\Datos\HOJAQUEQUIEROCONSERVAR.xls"
FileCopy cFich, cTemp
' Carga los objetos de Excel
.
.
' Abro el Libro de trabajo con la Hoja_Copia
Set xEb = xEa.Workbooks.Open(cTemp) Como puedes comprender, por muchos cambios que hagan en la hoja, lo harán sobre la copia, preservnado el original.
Claro que esto me sirve para "lo que me sirve"... que pudiera ser que no tenga nada que ver con lo que tú necesitas...
Esta es la rutina para borrar ficheros, que tengo en un Módulo...
Código:
Sub DeleteAFile(EspecArch)
Dim fso
On Error Resume Next
Set fso = CreateObject("Scripting.FileSystemObject")
fso.deletefile (EspecArch)
End Sub