方法一:
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
VBA读取逐行读取CSV数据(可指定条件)
最新推荐文章于 2024-01-31 13:51:29 发布