当前位置:编程学习 > VB >>

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 ,  基础类
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,