View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 27,285
Default Why QUIT method doesn't work after COPY method?

This kind of code creates a ghost (unreleasable reference) to Excel and can
cause this problem

ws_source.Range(Cells(1, 1), Cells(10, 20)).Copy

this should be written

ws_source.Range(ws_source.Cells(1, 1), ws_source.Cells(10, 20)).*Copy*

You certainly might have more such constructs - everything should be fully
qualified all the way back to the Excel application object. ws_source
already is, so you can start from there.

--
Regards,
Tom Ogilvy


"surotkin" wrote in
message ...

Hello everyone,

I found that I can not unload Excel (I open Excel-instance from Access)
using objExcel.Quit method after I execute Copy method of Range object.

There is part of my code (without error handler block) which copies
cells from one worksheet, creates a new worksheet and pastes those
cells with transpose option:

Public Function myTest2() As Long
Dim objExcel As Excel.Application
Dim wb As Excel.Workbook
Dim ws As Excel.Worksheet
Dim ws_source As Excel.Worksheet
myTest2 = 0

Set objExcel = New Excel.Application
objExcel.Workbooks.Open FileName:="D:\test.xls"
Set wb = objExcel.Workbooks("test.xls")
Set ws_source = wb.Worksheets(1)

ws_source.Range(Cells(1, 1), Cells(10, 20)).*Copy*
wb.Sheets.Add
Set ws = wb.ActiveSheet
ws.Range("A1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:=False, Transpose:=True
objExcel.CutCopyMode = False

wb.Close SaveChanges:=True

objExcel.*Quit*

Set ws = Nothing
Set ws_source = Nothing
Set wb = Nothing
Set objExcel = Nothing

End Function


Does anybody have an idea why?

Thanks.
surotkin


--
surotkin
------------------------------------------------------------------------
surotkin's Profile:

http://www.excelforum.com/member.php...o&userid=21197
View this thread: http://www.excelforum.com/showthread...hreadid=479431