【问题标题】:CSV file created with VBA has blank row(s) at the end even if cells are empty即使单元格为空,使用 VBA 创建的 CSV 文件末尾也有空白行
【发布时间】:2020-12-06 18:02:53
【问题描述】:

我在工作表的第一列中添加一些数据并使用此代码

Sub createCSVfile()

Dim xRg As Range
Dim xRow As Range
Dim xCell As Range
Dim xStr As String
Dim xTxt As String
Dim xName As Variant

ThisWorkbook.Worksheets("Tabelle1").Range("A1").Value = "XYZ"
ThisWorkbook.Worksheets("Tabelle1").Range("A2").Value = "XYZ"
ThisWorkbook.Worksheets("Tabelle1").Range("A3").Value = "XYZ"
ThisWorkbook.Worksheets("Tabelle1").Range("A4").Value = "XYZ"
ThisWorkbook.Worksheets("Tabelle1").Range("A5").Value = "XYZ"

Set xRg = ThisWorkbook.Worksheets("Tabelle1").Range("A1:A5")
xName = Application.GetSaveAsFilename("", "CSV File (*.csv), *.csv")
Open xName For Output As #1
For Each xRow In xRg.Rows
    xStr = ""
    For Each xCell In xRow.Cells
        xStr = xStr & xCell.Value & Chr(9)
    Next
    While Right(xStr, 1) = Chr(9)
        xStr = Left(xStr, Len(xStr) - 1)
    Wend
    Print #1, xStr
Next
Close #1
If Err = 0 Then MsgBox "csv file saved"

End Sub

将其保存为csv并删除所有基于this tutorial的引号。

当我用记事本打开 csv 时,末尾总是至少有一个空行:

如果我手动保存文件并没有什么不同 - 相同的空白行。我还尝试添加类似

ThisWorkbook.Worksheets("Tabelle1").Rows(6).Delete

但这并没有什么不同,因为工作表的第 6 行中没有值。

有没有办法解决这个问题,或者至少可以通过记事本自动删除 csv 中的最后一行?

【问题讨论】:

    标签: excel vba csv notepad blank-line


    【解决方案1】:

    正如cmets中建议的Wolfgang Jacques,我使用这种方法而不是SaveWorkbookAs

    Sub CreateAfile
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set a = fs.CreateTextFile("c:\testfile.txt", True)
        a.WriteLine("This is a test.")
        a.Close
    End Sub
    

    对于最后一个条目,我使用a.Write 而不是a.WriteLine

    【讨论】:

      【解决方案2】:

      没有空白行。您有 5 行,每行以 CR/LF(回车和换行)结尾。文本编辑器给你一个空的第 6 行。

      为避免这种情况,您必须从第 5 行删除 CR/LF,但通常不会这样做。

      没关系。

      【讨论】:

      • 我正在将此文件用于自定义软件。如果记事本中显示第 6 行,则此软件不起作用。如果我手动打开它,删除该行并再次保存它,它可以工作。
      • 也许这会让你走得更远? stackoverflow.com/questions/35131183/…
      猜你喜欢
      • 2012-07-12
      • 1970-01-01
      • 2021-09-27
      • 2021-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多