Office中国论坛/Access中国论坛

标题: [求助]关于VB6控制EXCEL的问题 [打印本页]

作者: samsonbox    时间: 2004-7-4 08:51
标题: [求助]关于VB6控制EXCEL的问题
我在c:\book1.xls的EXCEL文件编写了一个宏:

如:

  Sub aaa(bbb,ccc)

   程序代码……

   '此段代码生成一个excel表:BOOK2.XLS

  End Sub





然后我另外在VB中采用如下代码就调用Excel的宏。

   Dim appExcel As Object

   Set appExcel = CreateObject("Excel.Application")

   appExcel.Visible = True

   appExcel.Workbooks.Open "c:\book1.xls"

   appExcel.Run "aaa", "bbb" , "ccc"

   appExcel.Quit '结束EXCEL对象

   Set appExcel= Nothing





当我的VB程序没有退出的时候,我双点击打开BOOK2.XLS,此时EXCEL表不能打开,提示什么“一个致命的内存错误”(大概意思是这样),想问问到底是什么错误,是否Set appExcel= Nothing 一句不能释放内存而发生的错误?如果是这样,那要如何编写才能解决问题?如果不是这个原因,那么这么才能实现程序不退出就可以打开EXCEL表格?



请高手指点,谢谢!
作者: stanleypan    时间: 2004-7-4 21:36
最好把文件放上来,便于调试找原因.
作者: hzg7818    时间: 2004-7-5 05:50
我前两天就被这个错误搞死机几次,事实上确实是内存使用的故障原因,在内存中尚有Excel进程时,你点击打开excel文件,windows会先在进程中查找Excel进程,如果有则用已存在的excel进程打开文件,而紧跟着你就令Excel退出并销毁对象实例,这个时候错误就发生了,你可以在生成一个Excel对象变量,然后用后来的Excel对象来打开文件,试试看还会不会有错误
作者: samsonbox    时间: 2004-7-6 04:54
以下是引用hzg7818在2004-7-4 21:49:37的发言:

我前两天就被这个错误搞死机几次,事实上确实是内存使用的故障原因,在内存中尚有Excel进程时,你点击打开excel文件,windows会先在进程中查找Excel进程,如果有则用已存在的excel进程打开文件,而紧跟着你就令Excel退出并销毁对象实例,这个时候错误就发生了,你可以在生成一个Excel对象变量,然后用后来的Excel对象来打开文件,试试看还会不会有错误

恕我愚昧,我是初入门的,不太明白你说的意思,请问你说的“生成一个Excel对象变量”是什么意思?怎么写法?可以举个例子吗?
作者: tanjh    时间: 2004-7-6 23:33
不知有没有装补丁。[em01]




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3