2010-10-25 4 views
4

У меня есть макрос Excel VBA, который выводится в текстовый файл. В нижней части текстового файла всегда есть пустая строка, и мне сложно избавиться от нее. Любые полезные предложения будут очень признательны! БлагодаряExcel VBA добавляет лишнюю пустую строку в конец текстового файла при экспорте

Sub testExport() 

    Dim fPath As String, exportTxt As String 
    fPath = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\Sample_" & Format(Now(), "HHNNSS") & ".txt" 

    exportTxt = "Project: Sample Output" & vbCrLf 
    exportTxt = exportTxt & "Model Version: 1 " 


    Open fPath For Append As #1 'write the new file 
    Print #1, exportTxt 
    Close #1 

End Sub

ответ

4

С помощью на Print # заявления и способы задания charpos после того, как данные были выведены:

charpos Задает точку вставки для следующего символа , Используйте точку с запятой , чтобы установить положение сразу же после последнего символ отображается. Используйте Tab (n) до , чтобы указать точку ввода в абсолютный номер столбца . Использовать вкладку с нет аргументов для размещения вставки точка в начале следующего печать зоны. Если charpos опущен, следующий символ будет напечатан на следующей строке .

Попробуйте следующие вместо:

Print #1, exportTxt; 
+0

Что делать, если я хочу сделать это только для последней пустой строки? – sbk

0
Print #1, exportTxt; 

печатает все в одной строке. нет разрыва линии вообще.

1

Что я делал и работал, после того, как я создал txt-файл, подсчитал строки с данными, которые я хотел скопировать, и затем прокручиваю их, создавая новый файл, используя Print # 1, exportTxt; а также Print # 1, "", за исключением последней строки.

Open sOrgFile For Input As #1 
Do While Not EOF(1) 
iCounter = iCounter + 1 
Line Input #1, sData 
If sData = "" Then Exit Do 
Loop 
Close #1 

Open sOrgFile For Input As #1 
Open sDestFile For Output As #2 
Do While Not EOF(1) 
iCounter2 = iCounter2 + 1 
Line Input #1, sData 
    If sData = "" Then Exit Do 
Print #2, sData; 
If iCounter2 <> iCounter Then Print #2, "" 
sData = "" 
Loop 
Смежные вопросы