读书人

VB中进行合并Excel单元格操作后不能

发布时间: 2012-12-15 15:16:03 作者: rapoo

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被版主删除
[解决办法]
先顶你,等下回去测试
[解决办法]
太感谢你了,你的方法帮我解决了这样的问题,真的太好了!

读书人网 >VB

热点推荐