我正在敲打我的脑袋,因为几个小时来处理Excel.Range对象,由下面的语句创建。我已经在Stack Overflow上检查了几乎所有关于它的讨论。
oSheet.Range("A1", "H1").Merge()
当我注释掉这一行时,Excel应用程序成功关闭。但是,当我使用这一行时,它会创建Excel.Range对象,而不是由GC处理。任何人都可以帮助我。
谢谢
答案 0 :(得分:1)
您不应该像这样进行嵌套调用,而是将其更改为:
Dim r As Object = oSheet.Range("A1", "H1")
r.Merge()
然后可以通过以下方式正确处理:
Marshal.ReleaseComObject(r)
然后你可以根据需要重用变量:
r = oSheet.Cells(TitleRow3, 1)
' do something with r
Marshal.ReleaseComObject(r)
r = 'get a new range from somewhere
' do something with r
Marshal.ReleaseComObject(r)
...