VBA实例2-读取txt文本内容到Excel

2022-11-11 15:10:40 浏览数 (1)

分享使用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 ("文件完整路径")。

0 人点赞