2010-10-25 81 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 

末次

回答

4

從上Print #聲明和方法來指定charpos的幫助下,數據已被後輸出:

charpos指定爲下個字符的插入點。在顯示最後一個 字符後立即使用 分號來定位插入點 。使用Tab(n)至 將插入點定位到絕對列號 。使用選項卡 無參數將插入點 指向下一個打印區域的起始位置。如果省略了charpos,則在下一個 行上打印 下一個字符。

嘗試,而不是執行以下操作:

Print #1, exportTxt; 
+0

如果我只想爲最後一個空白行做什麼? – sbk 2017-08-07 06:08:18

0
Print #1, exportTxt; 

它在一個行打印的一切。根本沒有換行符。

1

我做的和工作的是,在創建txt文件後, 用我想要複製的數據計算行數,然後循環遍歷它,使用Print#1,exportTxt創建一個新文件;並打印#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