我有一个csv文件,其数据如下所示:
PPIC,11/20/2013 10:23,11431,10963,,Tremors ,
PPIC,11/20/2013 10:23,11431,11592,,"Glioblastoma, Barin ",
关键区别在于,第1行只包含一个单词(最后一列),而第二行包含用双引号括起来的数据(但用逗号分隔)
这会导致我的批量导入例程在第二行导入错误的数据。运行大容量导入时,它会将第二行拆分为多列。
我在StackOverflow上读了很多帖子,很多建议都指出使用一个“管道”分隔的文件作为批量插入的输入,这样可以消除与引用文本的任何不一致之处。
如何使用vb excel宏将此逗号分隔文件转换为竖线分隔文件?我想让这个过程保持自动化(它将获取输入的csv文件,将其转换为以竖线分隔的文件,然后进一步发送该文件以供导入)。或者,在执行批量插入时,如何解决要使用的不一致引号?
任何想法/帮助都很感谢。
发布于 2013-12-11 06:16:12
这样就可以了:
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
希望这能起作用
https://stackoverflow.com/questions/20505169
复制相似问题