vba_取入csv文件 出力csv文件

vba读取csv文件,根据csv文件不同,会有不同格式:

      1. 单纯的逗号分割,但是数字或备注字段中包含逗号,取入时,字段会被拆分

       2. 以逗号分割,但是,每个字段都有引号

vba读取入csv后的格式,基本都是字符串,然后通过分隔符进行拆分,所以,遇到一个字段中包含逗号的,很头疼,但是,根据取入的字符串格式,还是有办法可以解决的

' filePath 文件路径
' sheetName 目标sheet页名
Public Sub inputCsv(filePath As String, sheetName As String)
    Dim Buf As String
    Dim i, j As Long
    Dim tmp2() As Variant
    Dim cnt As Integer
    Dim myflag As Boolean
    
    With Worksheets(sheetName)
        .Visible = xlSheetVisible
        .Activate
        .Cells.Select
        Selection.NumberFormatLocal = "@"
        .Cells(1, 1).Select
    End With
    
    ' 開ける
    Set adoSt = CreateObject("ADODB.Stream")
          
    i = 1
    With adoSt
        .Charset = "Shift-JIS"
        .Open
        .LoadFromFile (filePath)
        Do Until .EOS
            Buf = .Readtext(-2)
            tmp = Split(Buf, ",")
            myflag = False
            cnt = 0
            
            For j = LBound(tmp) To UBound(tmp)
                If myflag = False And Left(tmp(j), 1) = """" And Right(tmp(j), 1) = """" Then
                    cnt = cnt + 1
                    ReDim Preserve tmp2(cnt)
                    tmp2(cnt) = Mid(tmp(j), 2, Len(tm
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值