Excel VBA导出文本文件时会在末尾添加额外的空行

5

我有一个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

结束子程序

3个回答

5

关于Print #语句的帮助以及在输出数据后指定charpos的方式:

charpos指定下一个字符的插入点。使用分号将插入点定位在最后一个显示字符之后。使用Tab(n)将插入点定位到绝对列号。使用没有参数的Tab将插入点定位在下一个打印区域的开头。如果省略charpos,则下一个字符将在下一行打印。

请尝试使用以下内容代替:

Print #1, exportTxt;

如果我只想对最后一个空行执行此操作,该怎么办? - tourist

2

我所做的并且有效的是,在创建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

0
Print #1, exportTxt;

它会把所有内容都打印在同一行,没有任何换行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接