У меня есть приложение 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, потому что я не хочу изобретать велосипед, но если придется, думаю, я сделаю что-нибудь еще.
Мы будем благодарны за любые предложения. .
Попробуйте Это! Удостоверьтесь, что пометили «Microsoft VBScript Regular Expressions 5.5» на Ссылках под Инструментами.
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