【问题标题】:Excel VBA puts extra blank line at end of text file when exportingExcel VBA 导出时在文本文件末尾放置额外的空行
【发布时间】:2010-10-25 19:11:22
【问题描述】:

我有一个输出到文本文件的 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

结束子

【问题讨论】:

    标签: vba text excel


    【解决方案1】:

    来自Print #语句的帮助以及数据输出后指定charpos的方法:

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

    请尝试以下方法:

    Print #1, exportTxt;
    

    【讨论】:

    • 如果我只想对最后一个空行做呢?
    【解决方案2】:

    我所做和工作的是,在我创建了 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
    

    【讨论】:

      【解决方案3】:
      Print #1, exportTxt;
      

      它将所有内容打印在一行中。完全没有换行符。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-12-26
        • 2018-05-23
        • 1970-01-01
        • 2013-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多