我正在使用FSO在VBA中创建并写入文本文件。我能够创建所需的文件,除了在文本文件的末尾创建换行符,即如果我的文件有4行,则有第5行是空白的。有没有办法删除最后一行?
以下是我目前使用的代码:
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
我在最后尝试了各种方法来删除这个换行符,但到目前为止我没有成功。
非常感谢你的帮助
答案 0 :(得分:2)
检查您是否正在写入最后一行(i = LastRow
),然后使用TextStream的Write
方法而不是WriteLine
。
答案 1 :(得分:2)
我建议您阅读Microsoft网站上有关FSO的官方文档: http://msdn.microsoft.com/en-us/library/6tkce7xa(v=vs.84).aspx
在其他方面,你会发现FSO提供的所有方法。
Writeline 方法: 将指定的字符串和换行符写入TextStream文件。
写方法: 将指定的字符串写入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