2019-07-06

Sub ReadTXTStrings()

? ? Dim sLine As String'定義各個變量

? ? Dim sFName As String

? ? Dim iFNumber As Integer

? ? Dim lRow As Long

? ? Dim lColumn As Long

? ? Dim vValues As Variant

? ? Dim iCount As Integer

?? ? 'txt文件,帶完整路徑(和excel同一個文件夾)

? ? sFName = ThisWorkbook.Path & "\PD170611104100554111384.txt"? ?

'先清空excel工作表的數(shù)據(jù)區(qū)域

? ? Sheet2.UsedRange.Offset(1, 0).ClearContents

? ? iFNumber = FreeFile 'FreeFile函數(shù)獲取txt文件的序號

? ? Open sFName For Input As #iFNumber '打開txt文件

? ? lRow = 1: k = 1 'txt數(shù)據(jù)首行? lRow

? ? Do '循環(huán)讀取txt文件數(shù)據(jù),一行一行讀取

? ? ? ? Line Input #iFNumber, sLine? '讀取txt數(shù)據(jù)一個整行

? ? ? ? If lRow > 9 Then'有效數(shù)據(jù)是從第10行開始

? ? ? ? k = k + 1: lColumn = 1'確定excel工作表的行和列

? ? ? ? ? ? vValues = Split(sLine, " ")'將整行數(shù)據(jù)按照空格分列,生成一個數(shù)組

? ? ? ? ? ? For Each s In vValues'遍歷數(shù)組每一個元素

? ? ? ? ? ? ? ? If Len(s) > 0 Then'如果數(shù)組元素不為空

? ? ? ? ? ? ? ? ? ? With Sheet2'將數(shù)據(jù)寫入工作表

? ? ? ? ? ? ? ? ? ? ? ? .Cells(k, lColumn) = s

? ? ? ? ? ? ? ? ? ? ? ? lColumn = lColumn + 1'列數(shù)按1遞增

? ? ? ? ? ? ? ? ? ? End With

? ? ? ? ? ? ? ? End If

? ? ? ? ? ? Next

'如果txt數(shù)據(jù)一整行都是空白,那么退出DO循環(huán).最后一行有效數(shù)據(jù)接著就是一個空行,可以作為條件不再退出不再讀取txt剩余的無效數(shù)據(jù)。

? ? ? ? ? ? If Trim(sLine) = "" Then Exit Do

?? ? ? ? End If

? ? lRow = lRow + 1'繼續(xù)讀取txt下一行數(shù)據(jù)

Loop Until EOF(iFNumber)

Close #iFNumber

End Sub

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容