Vb 导出excel 进程不能关闭问题 请各位大神 帮帮忙!!!
--------------------编程问答-------------------- 我觉得你的后面‘释放’代码有问题。你试下这样:
exwbook1.Close (True)
Set exsheet1 = Nothing
Set exwbook1 = Nothing
ex2.Quit
Set ex2 = Nothing
--------------------编程问答-------------------- 我记得前不久有位来问如何导出Excel数据的,我的代码中根本不要 类似你的 ex2.Quit 那种语句。
如果我的代码执行时,用户没有启动Excel,则Createobject()会启动Excel。
处理完数据后,工作簿关闭, 只一句: Set XXX = Nothing
(XXX是Excel进程对象),Excel就退出了。
当然如果执行时,用户是已经启动了Excel的,则不会造成Excel退出。
既然你的代码已经调用 .Quit 都不退出,也许还有别的原因吧。
--------------------编程问答-------------------- 我也觉得你的后面'释放'对象的代码先后顺序有问题。
基本上一般我都先用个对象承接EXCEL
再用另一个对象承接EXCEL下的Workbooks并新增一个或载入一个
再用另一个对象承接Workbooks下的sheet并新增一个或载入一个
.......
.......
最后结束当然就倒过来
先释放Workbooks下的sheet对象
再释放EXCEL下的Workbooks对象
再释放EXCEL对象
.Quit也有用到但是忘了放哪没背下来要查 --------------------编程问答-------------------- EXCEL有焦点的问题
除非在调试阶段
不然建议隐藏窗口再进行操作 --------------------编程问答-------------------- 你的定义顺序有问题:
Dim exwbook1 As Workbook
Dim exsheet1 As Object
Dim exwbook2 As Workbook
Dim exsheet2 As Object
标准的做法是采用前期绑定(引用Excel对象库)。任务完成后,按顺序释放对象:
'参考一下下面VB读取Excel图表到图片框的例子
Option Explicit
Dim mXlsApp As Excel.Application '应用
Dim mXlsBook As Excel.Workbook '工作薄
Dim mXlsSheet As Excel.Worksheet '工作表
Private Sub Command1_Click()
Set mXlsApp = New Excel.Application
Set mXlsBook = mXlsApp.Workbooks.Open("D:\graph.xls")
Set mXlsSheet = mXlsBook.Worksheets(1)
' 以下代码读取Excel中图表到图片框
mXlsSheet.ChartObjects(1).Chart.CopyPicture '读取图表到剪贴板
Picture1.Picture = Clipboard.GetData '粘贴数据到图片框
Clipboard.Clear '清除剪贴板数据
'注意下面的顺序
mXlsBook.Close
mXlsApp.Quit
Set mXlsSheet = Nothing
Set mXlsBook = Nothing
Set mXlsApp = Nothing
End Sub
补充:VB , 基础类