吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1205|回复: 14
收起左侧

[其他原创] [VBA] EXCEL/WPS 批量导入TXT文件

  [复制链接]
ittech 发表于 2024-9-9 14:06
本帖最后由 ittech 于 2024-9-9 14:11 编辑

这份代码,实现了批量将多个TXT文件内容导入到EXCEL。

众所周知,WPS表格只支持单文件导入(不支持批量)、EXCEL需要Power Pivot(我的插件崩了不能用)、FF格子则是会员功能(大冤种)。本人为了自己不被活活累死,在AI的协助下创作了这份代码,从此不再做牛马!
现在只需要Alt+F11,新建一个模块,把代码复制进去,将FolderPath = "C:\YourFolderPath\" ' 请将这里的路径修改为你的TXT文件所在的文件夹路径,就可以实现批量导入啦,非常的人性。

再说一下使用情景:
甲方是做情报的,我们是做报文处理的,甲方提供的数据包里一次大概有5万多份TXT文件,需要把每个文件的内容作为一行统统提取到Excel里。
5万多条导入大概需要20~30秒时间。
因为内容需要保密,而且也不复杂我就不贴图了。在论坛搜索过,没有类似的帖子,如果觉得好用请点赞鼓励一下,谢谢!


分为两个版本:
1:不带文件名的
[Visual Basic] 纯文本查看 复制代码
'吾爱首发
'作者:ITTECH
'日期:2024年9月9日
'简介:批量导入TXT内容到EXCEL,不导入文件名,只导入内容。

Sub ImportTxtFilesToExcel()
    Dim FolderPath As String
    Dim FileName As String
    Dim Sheet As Worksheet
    Dim Cell As Range
    Dim FileContent As String
    Dim FilePath As String
    Dim RowIndex As Long
    
    ' 设置文件夹路径
    FolderPath = "E:\YourFolderPath\" ' 请将这里的路径修改为你的TXT文件所在的文件夹路径
    FileName = Dir(FolderPath & "*.txt")
    
    ' 创建或选择一个工作表
    Set Sheet = ThisWorkbook.Sheets("Sheet1") ' 请将"Sheet1"修改为你的工作表名
    RowIndex = 1 ' 从第一行开始
    
    ' 遍历文件夹中的所有TXT文件
    Do While FileName <> ""
        FilePath = FolderPath & FileName
        FileContent = ReadFile(FilePath)
        
        ' 将文件内容放入工作表的单元格中
        Set Cell = Sheet.Cells(RowIndex, 1) ' 假设内容放在第一列
        Cell.Value = FileContent
        
        ' 准备读取下一个文件
        FileName = Dir()
        RowIndex = RowIndex + 1
    Loop
    
    MsgBox "所有TXT文件已成功导入到Excel中。"
End Sub

Function ReadFile(FilePath As String) As String
    Dim FileContent As String
    Dim FileNo As Integer
    
    FileNo = FreeFile
    Open FilePath For Input As #FileNo
    FileContent = Input$(LOF(FileNo), FileNo)
    Close #FileNo
    
    ReadFile = FileContent
End Function


2:带文件名的
[Visual Basic] 纯文本查看 复制代码
'吾爱首发
'作者:ITTECH
'日期:2024年9月9日
'简介:批量导入TXT内容到EXCEL,导入文件名(第一列),导入内容(第二列)。

Sub ImportTxtFilesToExcel()
    Dim FolderPath As String
    Dim FileName As String
    Dim Sheet As Worksheet
    Dim Cell As Range
    Dim FileContent As String
    Dim FilePath As String
    Dim RowIndex As Long
    
    ' 设置文件夹路径
    FolderPath = "C:\YourFolderPath\" ' 请将这里的路径修改为你的TXT文件所在的文件夹路径
    FileName = Dir(FolderPath & "*.txt")
    
    ' 创建或选择一个工作表
    Set Sheet = ThisWorkbook.Sheets("Sheet1") ' 请将"Sheet1"修改为你的工作表名
    RowIndex = 1 ' 从第一行开始
    
    ' 遍历文件夹中的所有TXT文件
    Do While FileName <> ""
        FilePath = FolderPath & FileName
        FileContent = ReadFile(FilePath)
        
        ' 将文件名放入第一列,文件内容放入第二列
        Sheet.Cells(RowIndex, 1).Value = FileName ' 文件名在第一列
        Sheet.Cells(RowIndex, 2).Value = FileContent ' 文件内容在第二列
        
        ' 准备读取下一个文件
        FileName = Dir()
        RowIndex = RowIndex + 1
    Loop
    
    MsgBox "所有TXT文件已成功导入到Excel中。"
End Sub

Function ReadFile(FilePath As String) As String
    Dim FileContent As String
    Dim FileNo As Integer
    
    ' 使用FreeFile获取一个可用的文件号
    FileNo = FreeFile
    ' 打开文件进行输入
    Open FilePath For Input As #FileNo
    ' 读取文件内容
    FileContent = Input$(LOF(FileNo), FileNo)
    ' 关闭文件
    Close #FileNo
    ' 返回文件内容
    ReadFile = FileContent
End Function



之前我还发过两个代码,大家有兴趣也可以看一下:

[VBA] PPT/WPS演示 超级好用的形状(矩形)创建代码
[VBA] Excel/WPS 给一列插入序号,支持合并单元格

免费评分

参与人数 5吾爱币 +12 热心值 +5 收起 理由
pjj811885 + 1 + 1 我很赞同!
ice518 + 1 + 1 谢谢@Thanks!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
0jiao0 + 1 + 1 谢谢@Thanks!
wapjsx + 2 + 1 不明觉厉!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

squallzcy 发表于 2024-9-9 14:10
感谢大佬无私奉献,我感觉以后应该能用得上,收藏了。感谢
netpeng 发表于 2024-9-9 14:19
drinkingcat 发表于 2024-9-9 14:43
感谢楼主分享。求您是如何使用AI,生成自己想要的语句代码的。
zhangxiaoxiao 发表于 2024-9-9 14:50
学习了,谢谢楼主分享
 楼主| ittech 发表于 2024-9-9 14:52
drinkingcat 发表于 2024-9-9 14:43
感谢楼主分享。求您是如何使用AI,生成自己想要的语句代码的。

用对话式LLM比如KIMI,直接说需求,要求生成VBA代码即可。
可能没有专家编写的优秀,但是能用。
lzspain 发表于 2024-9-9 15:06
设置文件路径那里,用弹出对话框让用户选择文件更好
drinkingcat 发表于 2024-9-9 15:43
ittech 发表于 2024-9-9 14:52
用对话式LLM比如KIMI,直接说需求,要求生成VBA代码即可。
可能没有专家编写的优秀,但是能用。

收到,感谢回复。
otho 发表于 2024-9-9 16:25
感谢楼主分享!
下载小王子 发表于 2024-9-9 16:35
最近开学,用上了vba,我多学学有好处。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 13:09

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表