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

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
 
J

Joel

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
 
T

Tom Med

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
 
J

Joel

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

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top