Анализировать CSV, игнорируя запятые внутри строковых литералов в VBA?

У меня есть приложение VBA, которое запускается каждый день. Он проверяет папку, в которую автоматически загружаются CSV, и добавляет их содержимое в базу данных. Разбирая их, я понял, что у некоторых значений есть запятые как часть их имени. Эти значения содержались в строковых литералах.

Итак, я пытаюсь понять, как анализировать этот CSV и игнорировать запятые, содержащиеся в строковых литералах. Например ...

1,2,3,"This should,be one part",5,6,7 Should return 

1
2
3
"This should,be one part"
5
6
7

Я использую функцию split () VBA, потому что я не хочу изобретать велосипед, но если придется, думаю, я сделаю что-нибудь еще.

Мы будем благодарны за любые предложения. .

17
задан Maryan Hutsul 5 February 2019 в 12:34
поделиться

1 ответ

Попробуйте Это! Удостоверьтесь, что пометили «Microsoft VBScript Regular Expressions 5.5» на Ссылках под Инструментами.

enter image description here

Function Splitter(line As String, n As Integer)
Dim s() As String
Dim regex As Object
    Set regex = CreateObject("vbscript.regexp")
    regex.IgnoreCase = True
    regex.Global = True
    regex.Pattern = ",(?=([^\""]*\""[^\""]*\"")*[^\""]*$)"
    s = split(regex.Replace(line, "|/||\|"), "|/||\|")
    Splitter = s(n - 1)
End Function
0
ответ дан 30 November 2019 в 11:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: