VB调用EXCEL后无法结束EXCEL结程(附代码)

来源:百度知道 编辑:UC知道 时间:2024/06/04 11:25:09
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = False
Set xlBook1 = xlApp.Workbooks.Open(App.Path & "/销售日报模版.xls")
Set xlsheet = xlBook1.Worksheets("当前")
xlsheet.Activate
xlsheet.Cells.Select
Selection.ClearContents
xlsheet.Range("A1").Select
Set xlsheet = xlBook1.Worksheets("temp")
xlsheet.Activate
xlsheet.Cells.Select
Selection.ClearContents
xlsheet.Range("A1").Select
Set allCol = WebBrowser1.Document.All
allcount = allCol.Length
Set idoc = WebBrowser1.Document
Set oo = idoc.All.tags("tr")
j = 1
o = 1
pb2.Min = 1
pb2.Max = allcount
For i = 0 To allcount - 1
TagName1 = allCol.Item(i).tagname
If TagName1 = "TR" Then
j = j + 1
o = 1

其他代码不变,最后几行作如下修改试试:
xlBook2.Close True
xlBook1.Save
xlBook1.Close True
xlApp.Quit
Set xlsheet = Nothing
Set xlsheet1 = Nothing
Set xlBook2 = Nothing
Set xlBook = Nothing
Set xlBook1 = Nothing

Set xlApp = Nothing

你试试如下代码:
For Each oBook In xlApp.WorkBooks
oBook.Save
oBook.Close
Next
xlApp.Quit
Set xlApp = Nothing

补充回答:代码本身没什么问题;有可能是你原来就打开的有Excel进程。再次调用会报什么错呢?

可以用unload从内存中卸载对象。

我也学学!谢谢!

类似问题我已有解答,不过稍麻烦,试了好多种方法还是以这种方法可行

你的问题我碰到过,我以前也是用xlApp.Visible = true先试的,
xlApp.Quit是最关键的语句,有它基本上就可以了,同意dcount10的说法,你先把所有excel进程结束后再运行,注意在过程中查看任务管理器中excel进程的变化.