关于Excel对象的释放问题:

二两就醉 2007-04-03 04:18:29
'
'办函数创建一个Excel文件
'strPath 是文件的路径
Public Function CreateExcelFile(strPath As String, iSheetCount As Integer)

Dim xls As New Excel.Application
Dim exlBook As New Excel.Workbook
Dim fso As New FileSystemObject

If fso.FileExists(strPath) Then fso.DeleteFile strPath
Set exlBook = xls.Workbooks.Add
exlBook.Worksheets.Add Count:=iSheetCount, After:=Sheets("Sheet3")

exlBook.SaveAs strPath
exlBook.Close
Set exlBook = Nothing

xls.Quit
Set xls = Nothing

Set fso = Nothing
End Function

打算创建一个Excel文件,其中包含了指定数目的工作表,操作已经成功。但是操作完成之后Excel对象没有释放,百思不得其解,求解!!!!

请帮忙调以上的代码,使其能完成同样的功能在函数完成时将Excel对象释放。
...全文
284 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
二两就醉 2008-07-09
  • 打赏
  • 举报
回复
谢谢各位。
用ADO取操作Excel效果会好点。
清晨曦月 2007-04-23
  • 打赏
  • 举报
回复
nonono

方法是这样的

exlBook.Close(true)


呵呵...调用退出方法时加入默认参数,这个参数的意义是确认直接保存.和它提示你已经改变是否保存时点保存是相同的.


相关内容可查找OFFICE自带VBA帮助.谢谢
sigridl 2007-04-22
  • 打赏
  • 举报
回复
After:=Sheets("Sheet3"),是这里有问题吧?
你这个工作薄是哪来的啊?
二两就醉 2007-04-04
  • 打赏
  • 举报
回复
关键是我的代码从来就没有定义,xlssheet对象啊;
而且从哪里可以看出我隐式定义了xlssheet对象呢??
guyehanxinlei 2007-04-03
  • 打赏
  • 举报
回复
SET 对象=NOTHING
datou985 2007-04-03
  • 打赏
  • 举报
回复
你的代码是因为有暗藏的worksheet对象存在,而函数结束以后又没有set xlssheet=nothing
因为你根本就没有声明worksheet的引用
所以无法释放worksheet对象
exlBook.Worksheets.Add Count:=iSheetCount, After:=Sheets("Sheet3")
应该在上面的语句上想办法声明一个worksheet对象
然后在xls.quit以后加上 set xlssheet=nothing 这样的语句就可以了

7,764

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧