FSO應用 讀取txt文件
FSO讀取txt實例
上節課我們講了關於FSO對象以及他的textstream文本流的一些基本知識點,今天我們就分享一個用FSO對象操作讀取txt文本文件的實例。
下面是一個文本文件,裡面有一些姓名、性別、出生日期等信息,我們需要將裡面種的內容導入到excel文件中。這節課我們講解,在這裡我們採取FSO對象的一些方法來讀取。
實現代碼:
Sub mydata() "讀取文本
Dim fs As FileSystemObject, tx As TextStream
Set fs = CreateObject("scripting.filesystemobject")"後期引用
Set tx = fs.OpenTextFile(ThisWorkbook.Path & "Students.txt", ForReading)
"以只讀方式打開文本文件
s = Split(tx.ReadAll, vbCrLf)"將列分開,變為數組
tx.Close"關閉txt
ReDim ar(1 To UBound(s) + 1)"定義ar動態數組
For i = 0 To UBound(s)
ar(i + 1) = Split(s(i), "")"將每行數據按分割開寫入數組ar
Next
cells.clear"清除已有數據
cr = Application.Transpose(Application.Transpose(ar))
[a1].Resize(UBound(cr), UBound(cr, 2)) = cr"將br數據寫入excel
End sub
運行結果:
open方法讀取
如若想用VBAopen語句打開並讀取txt數據,我們在這裡給出參考代碼。
實現代碼
Sub mydata3() "讀取文本
Open ThisWorkbook.Path & "Students.txt" For Input As #1
"以只讀方式打開文本文件
s = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)
Close #1 "關閉txt
ReDim ar(1 To UBound(s) + 1) "定義ar動態數組
For i = 0 To UBound(s)
ar(i + 1) = Split(s(i), "") "將每行數據按分割開寫入數組ar
Next
cr = Application.Transpose(Application.Transpose(ar))
[a1].Resize(UBound(cr), UBound(cr, 2)) = cr "將br數據寫入excel
End Sub
上述代碼中用到兩個函數:
StrConv(InputB(LOF(1), 1), vbUnicode)
StrConv函數:這個函數是用來在大小寫和Unicode/ANSI之間進行轉換的。Unicode
InputB:對於文本文件中包含的位元組數據要使用InputB函數讀取。
vbCrLf:回車符與換行符連接在一起。
有了這兩個操作txt的簡單例子,以後我們在操作txt文件的時候一定不會那麼無從下手了。
TAG:全球大搜羅 |