VB中进行合并Excel单元格操作后,不能正常释放(关闭)Excel进程的解决办法(Excel.Range的正确使用方法)
问题:使用合并单元格操作后,Excel进程不能释放;造成在连续进行多次生成报表操作时,只有第一个报表能够生成,后面的报表由于Excel进程不能释放的原因而不能生成;只有完全退出程序才能正常释放Excel进程。
在网上搜了N久,看了N多帖子,自己实验了N次(N>40),终于解决了问题,有感于解决该问题的艰辛,特发此帖。
这个问题的本质是如何使用正确Excel.Range方法
实例:
Set xlsApp = CreateObject("Excel.Application")
Set xlsBook = xlsApp.Workbooks.Add
Set xlsSheet = xlsBook.Worksheets(1)
================================================================================================
重点:
错误的写法
xlsSheet.Range(Cells(xlsiRow - RepRs.RecordCount, 1), Cells(xlsiRow - 1, 1)).Merge '合并县区单元格
xlsSheet.Range(Cells(xlsiRow, 1), Cells(xlsiRow, 2)).Merge '合并合计单元格
正确的写法:
xlsSheet.Range(xlsSheet.Cells(xlsiRow - RepRs.RecordCount, 1), xlsSheet.Cells(xlsiRow - 1, 1)).Merge '合并县区单元格
xlsSheet.Range(xlsSheet.Cells(xlsiRow, 1), xlsSheet.Cells(xlsiRow, 2)).Merge '合并合计单元格
红色带下划线部分(即Excel工作表对象实例),一定要写;否则,就会造成Excel进程不能被释放
================================================================================================
’ 释放Excel进程
xlsBook.Close
xlsApp.Quit
Set xlsSheet = Nothing
Set xlsBook = Nothing
Set xlsApp = Nothing
[解决办法]
多谢分享
[解决办法]
谢谢分享,找了好久。。感动啊~~~~
[解决办法]
sss
[解决办法]
我的就是这样啊 可是进程还是在
[解决办法]
找了好久,太感谢了!
[解决办法]
感动~~~
必需得顶.................................
强烈顶...........
[解决办法]
该回复于2010-09-16 14:31:07被版主删除
[解决办法]
先顶你,等下回去测试
[解决办法]
太感谢你了,你的方法帮我解决了这样的问题,真的太好了!