2014-02-12 169 views
1

有很多關於如何寫在VBA文本文件的信息,但我需要的是寫和保存而不關閉文件。我運行一些耗時的宏,並且需要不時地保存信息,因爲宏往往會崩潰。保存文本文件,它

這就是我現在所擁有的

sFile = ThisWorkbook.Path & "\" & wsRes & ".txt" 
    lFile = FreeFile 
    Open sFile For Append As lFile 
    Print #lFile, "======" //this is where I need to save the file as well. 
    Close lFile 

問候

回答

1

恐怕VBA不能這樣做,因爲-是,除了使用關閉,然後再重新打開它。 Scripting.FileSystemObject也缺少這個功能。

爲了有一個沖洗能夠文件輸出,你可以使用Windows API編寫你的文件。這裏指針的CreateFile & CloseHandle的用於打開/關閉文件,寫文件,寫它,並寫任何東西剩下的寫入緩衝區FlushFileBuffers。

+0

謝謝。如果我再次關閉並打開文件,我可以告訴VBA繼續從某一行寫入數據嗎?也許最好的解決方法是刪除舊文件併爲每個輸出保存一個新文件? – OSandstedt

+0

當然,VBA的「開放」可以附加到現有的文件,就像你已經做的那樣。當寫完整行時,它應該在追加時開始寫新行......除非Close在文件緩衝區崩潰時不刷新文件緩衝區。你也可以測試FileSystemObject;它也可以在打開時附加到文件中;也許該組件在崩潰之前確實正確地衝洗? –

+0

看來Close應該是沖水的,所以我想我會先試一下。如果沒有,我會看看FileSystemObject。 謝謝你的幫助! – OSandstedt