方法一:
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數據(可指定條件)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.