在从VBA中的csv文件加载数据期间,将2个双引号替换为1个双引号

时间:2017-12-20 16:24:15

标签: vba csv double-quotes

我将csv文件中的行加载到数组中(打开dataFilePath输入为#1,依此类推......)。加载的数组数据有2个双引号。示例:“”“”(空字符串),“”myText“”,“”75823“”。问题是后来在代码程序中无法正确检测空数组元素或其他数据。我找到了方法如何在字符串的开头和字符串的末尾将2个双引号替换为1个双引号:

<application>

在这段代码之后,我得到了我需要的东西 - 例子:“”(空字符串),“myText”,“75823”,但也许我在从csv文件(编码或其他东西)加载数据时错过了一些东西。也许更简单的方法是在csv文件读取期间在加载到数组字符串的开头和结尾处删除这两个双引号?

1 个答案:

答案 0 :(得分:0)

此双引号是特定于语言的。如果这些是您想要避免的唯一字符,并且您没有任何其他“奇怪”字符,那么您可以在Excel中遍历单元格中的字符并检查它们是否是非标准的(例如,不是前128个ASCII字符):

Public Sub TestMe()

    Dim stringToEdit    As String
    Dim cnt             As Long
    Dim myCell          As Range
    Dim newWord         As String

    For Each myCell In Range("A1:A2")
        newWord = vbNullString
        For cnt = 1 To Len(myCell)
            Debug.Print Asc(Mid(myCell, cnt, 1))
            If Asc(Mid(myCell, cnt, 1)) >= 127 Then
                'do nothing
            Else
                newWord = newWord & Mid(myCell, cnt, 1)
            End If
        Next cnt
        myCell = newWord
    Next myCell

End Sub

因此,想象一下你有这样的输入:

enter image description here

它会意识到引号有点奇怪,不应该包含在原始文本中,因为它们不是ASCII表中前128个单元的一部分。

运行代码后,您将获得一个空单元格和75823。