billylj 发表于 2012-10-17 20:40:45

求助:QTP中创建的excel,如何关闭excel的进程?

公司不能上外网,只能在家问,代码记不到全,主要实现的是创建一个excel文件,将当前用例中的datatable保存到这个excel文件中
代码
dim excelapp,excelpath
excelpath="D:\report\Nepath.xls"
excelapp=createobject(“excel.application”)
excelapp.workbooks.Add
excel.ActiveWorkbook.SaveAs excelpath‘这个是把当前用例中的datatable保存到excelpath中。
excelapp.quit
set excelapp=Nothing

发现关闭不了excel的进程;采用下面的代码判断
if not excelapp=Nothing then
excelapp.quit
set excelapp=Nothing
end if
但是,走不进这段代码中,貌似QTP认为excel进程已经关闭,实际上并没有关闭。
请大侠们帮忙看看,到底哪里出了问题,导致excel进程关闭不了。

xjwldlover 发表于 2012-10-18 09:33:22

前文中你已经 set excelapp=Nothing
后续if not excelapp=Nothing then当然就进不去了,这句应该放到你所有excelapp对象操作完毕后再添加

819longjiayan 发表于 2012-10-18 13:52:22

也可以直接用systemUtil.closeProcessbyname("excel.exe")不过木有试过,不知道行不行

819longjiayan 发表于 2012-10-18 13:53:50

回复 1# billylj


    可以试试systemUtil.closeprocessbyname("excel进程名"),可以关闭掉

billylj 发表于 2012-10-18 19:59:09

谢谢各位,已经解决了,确实是按照3,4楼的解决办法搞定的,不过有点不明白,为什么
excelapp.quit
set excelapp=Nothing
不能够杀掉excel进程呢?

user603 发表于 2012-10-19 14:09:41

回复 5# billylj


    先关闭工作表,再退出程序
ExBook.Close(True)
ExApp.Quit

auto_tester 发表于 2014-4-25 18:59:51

回复 4# 819longjiayan


   用上面是可以关闭,但是会弹出excel的询问窗口

819longjiayan 发表于 2014-5-4 19:51:45

回复 7# auto_tester


    先关闭工作表,再退出excel
        ObjBook.Close
        ObjExcel.Quit
        Set ObjBook=nothing
        Set ObjExcel=nothing
页: [1]
查看完整版本: 求助:QTP中创建的excel,如何关闭excel的进程?