我有一个csv文件,其数据如下所示:
PPIC,11/20/2013 10:23,11431,10963,,Tremors ,
PPIC,11/20/2013 10:23,11431,11592,,"Glioblastoma, Barin ",
关键区别在于第1行包含单个单词(最后一列),而第二行包含用双引号括起来的数据(但以逗号分隔)
这导致我的BULK Import例程导入第二行错误的数据。当BULK IMPORT运行时,它会将第二行拆分为多个列。
我在StackOverflow上阅读了很多帖子,很多建议指出有一个"管道"分隔文件作为批量插入的输入,将删除与引用文本的任何不一致。
如何使用vb excel宏将此逗号分隔文件转换为管道分隔文件?我想保持流程自动化(它将输入csv文件,将其转换为管道分隔,然后进一步发送文件以进行导入)。 要么 如何处理在执行BULK Insert时使用的不一致引号?
任何想法/帮助表示感谢。
答案 0 :(得分:0)
这样就可以了:
Sub MySub()
Dim FileString As String
Dim Pattern As String
Dim ReplacementPattern As String
Dim ChangedStr As String
Dim RE As Object
Set RE = CreateObject("vbscript.regexp")
FileString = "PPIC,11/20/2013 10:23,11431,10963,,Tremors ," & vbCrLf & "PPIC,11/20/2013 10:23,11431,11592,,""Glioblastoma, Barin "","
Pattern = "(""[^""]*""|[^"",]*)?,"
ReplacementPattern = "$1|"
RE.Pattern = Pattern
RE.Global = True
RE.MultiLine = True
ChangedStr = RE.Replace(mystr, ReplacementPattern)
End Sub
希望这可以解决问题