2014-12-04 4 views
0

Я создаю и записываю текстовый файл в VBA с использованием FSO. Я могу создать файл по мере необходимости, за исключением того, что в конце текстового файла создается разрыв строки, т. Е. Если у моего файла 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 метод TextStream, а не WriteLine.

2

Я бы посоветовал вам прочитать официальную документацию о FSO на веб-сайте Microsoft: http://msdn.microsoft.com/en-us/library/6tkce7xa(v=vs.84).aspx

Вы узнаете, в других, все методы, доступные из ФСО.

WriteLine метод: Записывает указанную строку и символ новой строки в файл TextStream.

Написать метод: Записывает указанную строку в файл TextStream.

Поскольку вы используете Метод только, у вас есть символ новой строки в конце каждой строки, последняя строка включена. Чтобы не было нового символа линии в конце вашего файла, вы должны проверить, когда вы пишете последнюю строку, и соответственно изменить способ:

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   
Смежные вопросы