Billy Pang
tuxedoman888 at gmail.com
Wed Sep 13 14:05:41 CDT 2006
err... kryptonite, not kryponite. On 9/13/06, Billy Pang <tuxedoman888 at gmail.com> wrote: > > ok.. here is it. what this does is it creates a brand new excel > workbook, write something to sheet2 and then make copy of sheet2. > > what i have noticed is that when copy sheet2 code is there, the xlApp > object is indestructible! (ie. cannot be destroyed; like superman). you can > still see that excel.exe still exists in windows task manager after > execution. xlapp survived the set xlApp=nothing onslaught. > > however, if you comment out the copy sheet2 code, xlApp can be destroyed. > the kryponite. > > Public Function fCopyYoWorksheet() > > Dim xlApp As Excel.Application > Dim xlBook As Excel.Workbook > Dim xlSheet As Excel.Worksheet > > Debug.Print "starting..." > > Set xlApp = CreateObject("Excel.Application") > Set xlBook = xlApp.Workbooks.Add > Set xlSheet = xlBook.Worksheets("Sheet2") > xlSheet.Range("B2").Value = "Yo! numbers" > xlSheet.Copy after:=Worksheets("Sheet1") > xlBook.Close ' it will prompt you to save > Set xlBook = Nothing > > xlApp.Quit > Set xlApp = Nothing > > Debug.Print "finished!" > > End Function > > > > > On 9/12/06, MartyConnelly <martyconnelly at shaw.ca> wrote: > > > > Let's see the intermediate code. > > > > Billy Pang wrote: > > > > >Thanks Marty and may the force be with you. I tried the different > > >copy method but I still get the same result (error message). > > >However, I noticed that the excel app still exists after I destroyed > > it. > > >That is... > > > > > > Dim xlApp As Excel.Application > > > Set xlApp = CreateObject("Excel.Application") > > > > > > some code for adding data to the the worksheet > > > some code for copying the worksheet > > > xlApp.Quit > > > Set xlApp = Nothing > > > > > >(that is, after stepping through set xlApp = nothing, I can still see > > >Excel.exe in my windows task manager) > > > > > >However, if I remove the code that copies the worksheet, excel.exe is > > >properly removed after set xlApp = nothing. > > > > > >Billy > > > > > >On 9/12/06, MartyConnelly <martyconnelly at shaw.ca> wrote: > > > > > > > > >>Use the Object Browser Luke! > > >>There is more than one copy method > > >>or it maybe you haven't set the activesheet > > >>in your method > > >> > > >>Sub CopyAndName() > > >>' This creates a new sheet, > > >>' copies the data from the first sheet, > > >> > > >>Dim sName As String, sht1 As Worksheet, sht2 As Worksheet > > >>Set sht1 = ActiveSheet > > >>Set sht2 = Worksheets.Add(after:=ActiveSheet) > > >>sht2.Name = "MyNewName " > > >>sht1.UsedRange.Copy Destination:=sht2.Range("A1") > > >>End Sub > > >> > > >> > > >>Billy Pang wrote: > > >> > > >> > > >> > > >>>Hello: > > >>> > > >>>>From Access, I'm trying to make a copy of a worksheet within an > > instance > > >>> > > >>> > > >>of > > >> > > >> > > >>>Excel that is created at runtime in VBA. > > >>> > > >>>xlsheet.copy after:=activesheet > > >>> > > >>>However, I get the following error message. > > >>> > > >>>Run-time error '5' > > >>> > > >>>Invalid procedure call or argument > > >>>Any ideas? > > >>> > > >>>Many thanks in advance, > > >>>Billy > > >>> > > >>> > > >>> > > >>> > > >>> > > >>-- > > >>Marty Connelly > > >>Victoria, B.C. > > >>Canada > > >> > > >>-- > > >>AccessD mailing list > > >>AccessD at databaseadvisors.com > > >> http://databaseadvisors.com/mailman/listinfo/accessd > > >>Website: http://www.databaseadvisors.com > > >> > > >> > > >> > > > > > > > > > > > > > > > > > > > -- > > Marty Connelly > > Victoria, B.C. > > Canada > > > > -- > > AccessD mailing list > > AccessD at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/accessd > > Website: http://www.databaseadvisors.com > > > > > > -- > Billy Pang > http://dbnotes.blogspot.com/ > "Once the game is over, the King and the pawn go back in the same box." - > Italian proverb > -- Billy Pang http://dbnotes.blogspot.com/ "Once the game is over, the King and the pawn go back in the same box." - Italian proverb