分享使用VBA程序读取txt文本文件的代码,txt文件的格式是UTF-8格式。
运行程序,选择需要读取的txt文件,选中后逐行读取填写至表格的A列。(数据处理部分代码可以根据实际需要修改。)
效 果 演 示
VBA 代 码
代码如下:
代码主要分为三部分,第一部分主要是获得指定的txt文本文件的路径和名称。
第二部分代码是读取文本中的内容,保存至变量中。
第三部分是将变量的内容用split函数按分行来分割,保存至数组中,可以根据实际需要来修改代码处理数据,最后再将处理完的数据保存至sheet表中。
代码语言:javascript复制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文件内容保存至strData变量中
'创建ADODB.Stream对象
Set objStream = CreateObject("ADODB.Stream")
'指定字符集为UTF-8
objStream.Charset = "utf-8"
'使用Open方法打开流对象
objStream.Open
'加载文本文件
objStream.LoadFromFile (pathX)
'使用ReadText返回文件内容
strData = objStream.ReadText()
'第三部分用Split函数按行来分割字符串存至数组中,处理数据,然后通过循环填写至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文件路径,可以直接从第二部分代码开始使用,将第二部分代码其中修改为objStream.LoadFromFile ("文件完整路径")。