Cannot close a workbook in VBA due to Run-Time error '1004'

  • Thread starter Thread starter Tom Med
  • Start date Start date
T

Tom Med

When I try to call this method

wkbk.Close

I get this error message

Run-Time error '1004'

Method 'Close' of object '_Workbook' failed

If I step through the code it will close fine, but the bit of code
that seems to be causing a problem is the
Sub Workbook_Deactivate()
breaking into this in the debugger seems to resolve the issue, so I
cannot find the cause of the problem. Is there an error in the way
excel handles the close events? It seems something is fundamentally
wrong with the way excel is working in this senario.

Thanks
Tom
 
This code works. I can't tell why from one statement what your problem is.
Maybe you forgot to use SET when you declared wkbk

Sub test()

Workbooks.Open Filename:= _
ActiveWorkbook.Path & "\" & "tempfile.xls"

Set wkbk = ActiveWorkbook

wkbk.Close
End Sub
 
The wkbk is a correct object, I can see it is properly formed in the
local window. I have a nasty work around which involves trying to
close, if that fails then disabling events and closing again. I would
still be interested as to why the .close method can fail when you
overload some of the event methods

Tom
 
Try adding in a delay in the Deactivate method. I haven't used Deactivate
method myself in any code I wrote.
 
Back
Top