前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA实例2-读取txt文本内容到Excel

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

作者头像
无言之月
发布2022-11-11 15:10:40
6K1
发布2022-11-11 15:10:40
举报

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-09-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Excel和Access学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档