0

我有这种 CSV :

EXCEL CSV 换行符

因此,当我使用“从文本文件获取数据”导入EXCEL 2013时,

1)如何说分隔符 IS QUOTES + COMMA

2)对于Excel,字段中的BREAK LINE是新的数据行......怎么说不是?

我知道 CSV 是 Web 上一个很长的话题,但没有明显的解决方案。所以谢谢你的帮助。

4

1 回答 1

0

第 1 步:我将首先修复文件:

Sub ImportData()
    Dim dataTextFile As String
    Dim outTextFile As String, splitPart As String, missingPart As String, ret As String
    '---Read the file---
    Open "C:\Data.txt" For Input As #1
    dataTextFile = Input$(LOF(1), 1)
    Close #1

    dataTextFile = Replace(dataTextFile, vbNewLine, "[NEW_LINE]")

    ret = GetRegex("(.*?,.*?,.*?),")
    outTextFile = outTextFile & ret & vbNewLine

    Do While 1
        If (ret = GetRegex(dataTextFile, ",(.*?,.*?,.*?)")) <> "" Then
           Exit Do
        Else
            outTextFile = outTextFile & ret & vbNewLine
            dataTextFile = Right(dataTextFile, Len(dataTextFile) - Len(ret))
        End If
    Loop
    '---Write back to the file---
    Open "C:\Data.txt" For Output As #1
    Write #1, outTextFile
    Close #1
End Sub

您可以在此处找到 GetRegex 函数:链接。或者只使用一般的 Regex 对象。警告:我没有测试过代码,所以你可能需要做一些修改。

第 2 步:接下来,您只需通过 Import Wizar d 将文件正常导入为逗号分隔文件。

第 3 步:最后通过宏或任何其他方式将“[NEW_LINE]”替换为换行符。

或者,您也可以在同一个宏中执行步骤 2-3 - 并使用 Right 函数或 Regex 将列提取到输出工作表。

于 2015-05-04T14:36:04.883 回答