首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将csv保存为使用vba分隔的管道

将csv保存为使用vba分隔的管道
EN

Stack Overflow用户
提问于 2013-12-11 05:05:01
回答 1查看 3.3K关注 0票数 0

我有一个csv文件,其数据如下所示:

代码语言:javascript
运行
复制
PPIC,11/20/2013 10:23,11431,10963,,Tremors ,
PPIC,11/20/2013 10:23,11431,11592,,"Glioblastoma, Barin ",

关键区别在于,第1行只包含一个单词(最后一列),而第二行包含用双引号括起来的数据(但用逗号分隔)

这会导致我的批量导入例程在第二行导入错误的数据。运行大容量导入时,它会将第二行拆分为多列。

我在StackOverflow上读了很多帖子,很多建议都指出使用一个“管道”分隔的文件作为批量插入的输入,这样可以消除与引用文本的任何不一致之处。

如何使用vb excel宏将此逗号分隔文件转换为竖线分隔文件?我想让这个过程保持自动化(它将获取输入的csv文件,将其转换为以竖线分隔的文件,然后进一步发送该文件以供导入)。或者,在执行批量插入时,如何解决要使用的不一致引号?

任何想法/帮助都很感谢。

EN

回答 1

Stack Overflow用户

发布于 2013-12-11 06:16:12

这样就可以了:

代码语言:javascript
运行
复制
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

希望这能起作用

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20505169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档