VBA读取逐行读取CSV数据(可指定条件)

方法一:
Sub 提取部分CSV数据()

Dim FileName As String
Dim txtLine As String
FileName = ThisWorkbook.Path & "\EUtranCellRelation.csv"
Open FileName For Input As #1
Open ThisWorkbook.Path & "\output.CSV" For Output As #2
k = 0
Do While Not EOF(1)
    
    Line Input #1, txtLine '读取一行的数据,一直读到文件尾
    k = k + 1
    If k = 1 Then
      For I = 0 To UBound(Split(txtLine, ","))
          Str1 = Split(txtLine, ",")(I)
          If Str1 = "ip" Then
            n = I
          ElseIf Str1 = "EUtranCell" Then
            m = I
          
          ElseIf Str1 = "ishoallowed" Then
            o = I
          End If
    
       Next
    Else
     'For I = 0 To UBound(Split(txtLine, ","))
     Print #2, Split(txtLine, ",")(n) + Chr(44) + Split(txtLine, ",")(m) + Chr(44) + Split(txtLine, ",")(o)
    End If
    
Loop
Close #1
Close #2
End Sub




方法二:
Sub 提取邻区及邻区对()
Set fs = CreateObject("Scripting.FileSystemObject")
FileName = ThisWorkbook.Path & "\EUtranCellRelation.csv"
'Open FileName For Input As #1
Open ThisWorkbook.Path & "\output.CSV" For Output As #2
Set objFile = fs.GetFile(FileName)
Set streamExcel = objFile.OpenAsTextStream()

 Do While Not streamExcel.AtEndOfStream
      txtLine = streamExcel.ReadLine()
       num = num + 1
       If num = 1 Then
       
         ' For i = 0 To UBound(Split(txtLine, ","))
          '  Str1 = Split(txtLine, ",")(i)
           '   If Str1 = "logFile" Then
            '    n = i
             ' ElseIf Str1 = "MO" Then
              '  m = i
          
             'ElseIf Str1 = "eutrancellrelationid" Then
             '  O = i
              'End If
    
            'Next
             Print #2, "logFile" + Chr(44) + "CELL" + Chr(44) + "eutrancellrelationid"
          Else
      
            t = Split(txtLine, Chr(34))
            CELL = Split(Split(Replace(Replace(t(1), "EUtranCellTDD=", "!"), "EUtranCellFDD=", "!"), "!")(1), ",")(0)
            
            ETC = Split(t(2), ",")(12)
            Print #2, Split(t(0), ",")(0) + Chr(44) + CELL + Chr(44) + ETC
          End If
      
    Loop


Close #1
Close #2
MsgBox ("OK")

End Sub
  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_44390640

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值