我在Excel 2007中創建,填充並關閉了一個Textstream文件對象(下面簡寫的片段)中有一些VBA代碼。關閉VBA後,Textstream對象在Excel中保持打開狀態
Set CSV = FSO.CreateTextFile(strPathOut & Application.PathSeparator & strFileOut)
'Fill the file
CSV.Close
代碼工作完美,包括CSV.Close
指令,但是如果我再嘗試刪除或修改文件(例如,在Windows資源管理器或記事本)的系統要求的Excel仍有打開該文件。看似唯一的解決方法是關閉Excel本身。
我檢查過CSV.Close
正在做VBA方面應該做的事情;它不會導致運行時錯誤,當然該文件不再可用於在該指令後寫入。
我的項目早期綁定到Microsoft Scripting Runtime scrrun.dll。我嘗試刪除該引用,但我得到了相同的結果。
這不是項目的展示者,但它是開發過程中的PITA。任何人都知道發生了什麼事?
如果您另外'設置CSV = Nothing'和相同的項目相關的其他對象變量? –
謝謝 - 這固定它。道歉,我從來沒有在Robin Mackenzie將其作爲實際答案發布之前進行測試。 – blackworx
如果在同一個過程中聲明瞭'CSV',那麼當程序退出時它應該被破壞。你的變量在程序中聲明瞭嗎?您也可以使用'FSO.OpenTextFile'方法(如果需要,仍然強制創建一個新文件)。 – ThunderFrame