老问题:如何正确退出Excel? 调用了Quit和ReleaseDispatch后,Excel进程仍然存在,直到程序关闭后才退出。谁又解决方法? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Excel97,Excel2002,Excel2002并不唤起(raise)一个能被其他进程注意到的退出事件。只有当一个不在同一个进程内的控制着Excel的一个实例的应用程序(下称控制者)释放所有的对象引用的时候,控制者才知道Excel进程已经结束,于是告知Excel退出。但是,如果一个控制者创建了一个Excel实例并使之可见的时候,因为它并不知道终端用户什么时候关闭了Excel,所以只要控制者还没有释放对象引用的时候,Excel就会保持着装载以及在运行对象表(Running Object Table)中的状态。所以出现了您所说的情况。至于这个问题的解决方法,您可以用查找窗口等方法得到该进程的控制权,然后关闭就可以了。如果您需要了解进一步的信息,您可以参看kb文章http://support.microsoft.com/default.aspx?scid=kb;en-us;Q192348。- 微软全球技术中心 VC技术支持本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。 谢谢您的解答。我创建的EXCEL实例是不可见的,并且我调用了SetUserControl(false)使用户无法控制。跟据EXCEL开发手册,如果调用SetUserControl(false),则释放所有对象后EXCEL就会退出,但事实并非如此!我再说的详细点。我的程序里有两个函数进行EXCEL操作,其中之一是将一些数据导入到EXCEL中,这个函数退出后EXCEL进程也随之正确关闭了。另一个函数是将EXCEL中的内容导入到ACCESS数据库中,使用了ADO,而这个函数退出后EXCEL进程却无法退出。在这两个函数中对EXCEL的操作几乎是一样的,不同之处是第一个函数是新建的EXCEL文档,而第二个函数是打开了一个已存在的EXCEL文档。我感觉是跟ADO有关系,还希望能够听听您的解释。 不知道这样可不可以?Dim xlApp As New Excel.Application()Dim wb As Excel.Workbook'其他代码wb.Saved = True '其间没有调用wb.Save()wb.Close()xlApp.Quit() 可能是office 本身的问题吧有时候可以行,但有时出毛病,我也是这样。 ModifyStyle(0, BS_OWNERDRAW, SWP_FRAMECHANGED);//这是什么意思? 请教读取文本文件数据并显示出来的问题 动态改变Slider背景色 mfc 对话框最大化界面重绘问题 如何扫描本机的端口? 如何设置新的系统时间,校时系统时间 学好VC要多长时间? 如何用代码刷新屏幕??? 这两本书各自侧重什么? 急!再加一百分,高手帮忙看看! CString的内存释放 请问,如何用media player控件来播放网上的音频文件?
(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。为了为您创建更好的讨论环境,请参加我们的用户满意度调查
(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
我再说的详细点。我的程序里有两个函数进行EXCEL操作,其中之一是将一些数据导入到EXCEL中,这个函数退出后EXCEL进程也随之正确关闭了。
另一个函数是将EXCEL中的内容导入到ACCESS数据库中,使用了ADO,而这个函数退出后EXCEL进程却无法退出。在这两个函数中对EXCEL的操作几乎是一样的,不同之处是第一个函数是新建的EXCEL文档,而第二个函数是打开了一个已存在的EXCEL文档。我感觉是跟ADO有关系,还希望能够听听您的解释。
Dim xlApp As New Excel.Application()
Dim wb As Excel.Workbook
'其他代码
wb.Saved = True '其间没有调用wb.Save()
wb.Close()
xlApp.Quit()
有时候可以行,但有时出毛病,我也是这样。