2014-12-04 45 views
0

我正在使用FSO在VBA中創建和寫入文本文件。我能夠根據需要創建文件,除了在文本文件的末尾創建換行符,即如果我的文件有4行,則第5行是空白的。有沒有辦法去除最後一行?使用FSO避免在文本文件末尾換行

下面是我使用至今代碼:

Dim fso As Object 
Set fso = CreateObject("Scripting.FileSystemObject") 
Dim oFile As Object 
Set oFile = fso.CreateTextFile(PathName) 
For i = 1 To LastRow 
    oFile.WriteLine Sheets("Sheet1").Range("A" & i).Value 
Next i 
oFile.Close 
Set fso = Nothing 
Set oFile = Nothing 

我嘗試過各種東西,除去在年底這條線斷,但我沒有成功爲止。

非常感謝您的幫助

回答

2

檢查你寫的最後一行(i = LastRow),然後使用文本流的Write方法,而不是WriteLine

2

我建議你閱讀有關FSO官方文檔上微軟網站: http://msdn.microsoft.com/en-us/library/6tkce7xa(v=vs.84).aspx

你會發現,在其他國家,都可以從FSO方法。

Writeline方法: 將指定的字符串和換行符寫入TextStream文件。

方法: 寫入指定的字符串到一個文本流文件。

由於您只使用Writeline方法,所以在每行末尾都有一個換行符char,包含最後一行。 要在文件末尾沒有換行符,應該測試何時寫入最後一行,並相應地更改方法:

Dim fso As Object 
Set fso = CreateObject("Scripting.FileSystemObject") 
Dim oFile As Object 
Set oFile = fso.CreateTextFile(PathName) 
For i = 1 To LastRow 
    If i = LastRow then 
     oFile.Write Sheets("Sheet1").Range("A" & i).Value  
    Else 
     oFile.WriteLine Sheets("Sheet1").Range("A" & i).Value 
    End If 
Next i   
oFile.Close   
Set fso = Nothing   
Set oFile = Nothing