明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3813|回复: 4

excel进程在vba结束后不能退出的问题

[复制链接]
发表于 2005-5-26 11:31:00 | 显示全部楼层 |阅读模式
不晓得有没有前辈遇到过这个问题,vba退出后,进程里始终有excel在运行 我写的如下的函数打开excel数据 Function newExcelApp(visible As Boolean) As Excel.Application
Dim xls As Excel.Application
Set xls = New Excel.Application
xls.visible = visible
Set newExcelApp = xls
End Function Function openExcelBook(app As Excel.Application, name As String) As Excel.workbook
Dim xlbook As Excel.workbook
Set xlbook = app.Workbooks.Open(name)
Set openExcelBook = xlbook
End Function Function getSheet(workbook As Excel.workbook, name As String) As Excel.worksheet
Dim sheets As Excel.Worksheets
Dim sheet As Excel.worksheet
Dim i As Integer
i = 1
For i = 1 To workbook.sheets.count

If workbook.sheets.item(i).name = name Then
Set getSheet = workbook.sheets.item(i)
Exit Function
End If
Next
End Function Set dbXls = newExcelApp(False)
Set dbBook = openExcelBook(dbXls, "C:\Documents and Settings\Administrator\桌面\mywork\pkpm\data.xls") 在UserForm_QueryClose事件里 dbBook.Save
dbBook.Close
dbXls.Quit 但是似乎不行啊 请帮忙解决一下把
发表于 2005-5-26 14:05:00 | 显示全部楼层
我也遇到过类似问题,由于自知很业余,所以没在意
发表于 2005-5-26 14:21:00 | 显示全部楼层
1、将getSheet设置为全局变量 2、在UserForm_QueryClose事件里添加 Set getSheet =nothing dbBook.Save
dbBook.Close
dbXls.Quit
 楼主| 发表于 2005-5-27 12:10:00 | 显示全部楼层
liyuwen发表于2005-5-26 14:21:001、将getSheet设置为全局变量 2、在UserForm_QueryClose事件里添加 Set getSheet =nothing dbBook.Save dbBook.Close d...

那么是不是异常退出的话就不能关闭了
发表于 2005-5-29 01:48:00 | 显示全部楼层
是的,会在内存里面残留
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-27 15:37 , Processed in 0.182288 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表