首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB中进行合并Excel单元格操作后,不能正常释放(关闭)Excel进程的解决方法(Excel.Range的正确使用方法)

2012-12-15 
VB中进行合并Excel单元格操作后,不能正常释放(关闭)Excel进程的解决办法(Excel.Range的正确使用方法)问题:

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

热点排行