在被VBAclosures后,文本stream对象在Excel中保持打开状态

我有一些Excel 2007中的VBA代码,它创build,填充,然后closures一个文本stream文件对象(下面的缩写片段)。

Set CSV = FSO.CreateTextFile(strPathOut & Application.PathSeparator & strFileOut) 'Fill the file CSV.Close 

代码完美的工作,包括CSV.Close指令,但是如果我然后尝试删除或修改文件(例如在Windows资源pipe理器或记事本)系统声称Excel仍然打开文件。 看似唯一的方法来释放它是closuresExcel本身。

我已经检查过CSV.Close正在做VBA方面应该做的事情; 它不会导致运行时错误,当然在该指令之后该文件不再可写入。

我的项目早期绑定到Microsoft Scripting Runtime,scrrun.dll。 我已经尝试删除该引用,但我得到了相同的结果。

这不是项目的展示者,但是它在开发过程中是一个PITA。 有人知道发生了什么事?

试试这个简单的例子 – 在代码运行后,文件可以通过记事本进行编辑:

 Option Explicit Sub Test() Dim objFSO As New FileSystemObject Dim objStream As TextStream Dim i As Integer Set objStream = objFSO.CreateTextFile("D:\temp.txt") With objStream For i = 1 To 10 .WriteLine CStr(i) Next i .Close End With Set objStream = Nothing Set objFSO = Nothing End Sub