運(yùn)行程序,選擇需要讀取的txt文件,選中后逐行讀取填寫(xiě)至表格的A列。(數(shù)據(jù)處理部分代碼可以根據(jù)實(shí)際需要修改。) 代碼如下: 代碼主要分為三部分,第一部分主要是獲得指定的txt文本文件的路徑和名稱(chēng)。 第二部分代碼是讀取文本中的內(nèi)容,保存至變量中。 第三部分是將變量的內(nèi)容用split函數(shù)按分行來(lái)分割,保存至數(shù)組中,可以根據(jù)實(shí)際需要來(lái)修改代碼處理數(shù)據(jù),最后再將處理完的數(shù)據(jù)保存至sheet表中。 Sub test() Dim objStream, strData, Arr1, i As Long Dim pathX As String, strX As String, N As Long '第一部分選中需要讀取的txt文件 With Application.FileDialog(msoFileDialogFilePicker) With .Filters .Clear .Add 'txt文件', '*.txt' End With .AllowMultiSelect = False If Not .Show Then Exit Sub pathX = .SelectedItems(1) End With '第二部分讀取UTF-8格式的txt文件內(nèi)容保存至strData變量中 '創(chuàng)建ADODB.Stream對(duì)象 Set objStream = CreateObject('ADODB.Stream') '指定字符集為UTF-8 objStream.Charset = 'utf-8' '使用Open方法打開(kāi)流對(duì)象 objStream.Open '加載文本文件 objStream.LoadFromFile (pathX) '使用ReadText返回文件內(nèi)容 strData = objStream.ReadText() '第三部分用Split函數(shù)按行來(lái)分割字符串存至數(shù)組中,處理數(shù)據(jù),然后通過(guò)循環(huán)填寫(xiě)至sheet表中 Arr1 = Split(strData, vbCrLf) objStream.Close Set objStream = Nothing N = 1 For i = 0 To UBound(Arr1) strX = Arr1(i) If strX <> '' Then Range('A' & N) = strX End If N = N + 1 Next End Sub 如果已知txt文件路徑,可以直接從第二部分代碼開(kāi)始使用,將第二部分代碼其中修改為objStream.LoadFromFile ('文件完整路徑')。 今天下雨 Live and Learn |
|
來(lái)自: Excel實(shí)用知識(shí) > 《VBA與EXCEL》