首页 > 解决方案 > Excel 到 .tsv 文件,但仍然有逗号和引号

问题描述

我正在尝试通过运行以下代码来创建一个新的 .tsv 文件。但即使我已将其设置为 .tsv,输出仍在 .csv 文件中。有没有办法解决这个问题?

Sub toTxt()
    Dim myFile As String, rng As Range, cellValue As Variant, i As Integer, j As Integer
    myFile = Application.DefaultFilePath & "\PO" & Format(Now(), "yyyymmddhhmmss") & ".tsv"
    iLast = ThisWorkbook.Sheets("PO_Master").Range("C" & Rows.Count).End(xlUp).Row

    Set rng = ThisWorkbook.Sheets("PO_Master").Range("A7:BA" & iLast)
    Open myFile For Output As #2
    For i = 1 To rng.Rows.Count
        For j = 1 To rng.Columns.Count
            cellValue = rng.Cells(i, j).Value

            If j = rng.Columns.Count Then
                Write #2, cellValue
            Else
                Write #2, cellValue,
            End If
        Next j
    Next i

    Close #2

样本输出

ASA,"AA","BB","CC","DD","EE","FF"

标签: vbaexcelcsv

解决方案


尝试建立一个字符串outputline(你需要声明它)并且只在每一写入数据。

For i = 1 To rng.Rows.Count
    outputline = ""
    For j = 1 To rng.Columns.Count
        cellValue = rng.Cells(i, j).Value

        If outputline = "" Then
            outputline = outputline & cellValue
        Else
            outputline = outputline & Chr(9) & cellValue
        End If

    Next j
    Print #2, outputline

Next i

推荐阅读