吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2670|回复: 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] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
'吾爱首发
'作者: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] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
'吾爱首发
'作者: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 不明觉厉!

查看全部评分

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

 楼主| ittech 发表于 2024-9-9 14:52
drinkingcat 发表于 2024-9-9 14:43
感谢楼主分享。求您是如何使用AI,生成自己想要的语句代码的。

用对话式LLM比如KIMI,直接说需求,要求生成VBA代码即可。
可能没有专家编写的优秀,但是能用。
squallzcy 发表于 2024-9-9 14:10
感谢大佬无私奉献,我感觉以后应该能用得上,收藏了。感谢
drinkingcat 发表于 2024-9-9 14:43
感谢楼主分享。求您是如何使用AI,生成自己想要的语句代码的。
zhangxiaoxiao 发表于 2024-9-9 14:50
学习了,谢谢楼主分享
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,我多学学有好处。
放羊的狼 发表于 2024-9-9 17:14
这种逻辑还是pq最简单,但是适用性的话自然还是vba
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2025-10-10 23:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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