2014-12-04 82 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