Set   oSheet   =   oBook.Sheets("sheet2") 
                oSheet.Copy   AFTER:=Sheets(2)                     oBook.Close   (False) 
                Set   oSheet   =   Nothing 
                Set   oBook   =   Nothing 
                oExcel.Quit 
                Set   oExcel   =   Nothing 
把oSheet.Copy   AFTER:=Sheets(2)删除后运行,进程里就没有EXCEL了,为什么啊? 如何解决? 
谢谢!

解决方案 »

  1.   

    在oExcel.Quit之前加入如下代码
    'xlAutoOpen=1;xlAutoClose=2
    oBook.RunAutoMacros (1) '运行EXCEL启动宏
    oBook.RunAutoMacros (2) '运行EXCEL关闭宏
      

  2.   

    加入以上代码没有用啊~~完整代码如下,大家看看帮帮忙,就复制了个工作表,怎么就常驻进程关不掉了呢Private Sub Command1_Click()
        Dim PageAll, PageOne As Integer
        Dim oExcel As Excel.Application
        Dim oBook As Excel.Workbook
        Dim oSheet As Excel.Worksheet
        
        Set oExcel = CreateObject("Excel.Application")
        Set oBook = oExcel.Workbooks.Open("c:\book1.xls")
        Set oSheet = oBook.Worksheets("sheet2")    oSheet.Copy AFTER:=Sheets(2)    oBook.Close (False)
        Set oSheet = Nothing
        Set oBook = Nothing
        oExcel.Quit
        Set oExcel = Nothing
        
    End Sub
      

  3.   

    还真是,我原来只操作单一sheet的时候,用上述的代码执行完毕后可以自动关闭进程的实际试验了下你的这个,确实不行,关注中
      

  4.   

    oSheet.Copy   AFTER:=Sheets(2)改成:
    oSheet.Copy   AFTER:=oBook.Worksheets(2)就行了在VB中调用VBA时,尽量不用到Active类似的对象,如activebook,activesheet,等
    你代码中用到了Sheets前面没有定义,它默认引用了activebook.worksheets对象引起进程没有关闭以上是我自已在工作中遇到一些问题总结出来的,也不知道对不对,仅供参考