Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3420|回复: 10

[已解决]多个TXT文件内容的读取

[复制链接]
发表于 2015-10-14 20:29 | 显示全部楼层 |阅读模式
本帖最后由 金樽空对月 于 2015-10-15 16:31 编辑

如附件内,把名称为1 到4 的TXT文件的内容逐个读取到汇总表的第一个工作表内,排列效果见附件内EXCEL文档。
感谢!
最佳答案
2015-10-15 16:08
'主程序
Sub test()
    Application.ScreenUpdating = False
    Call test1
    Call test2
End Sub

'清除工作表
Sub test1()
    Dim x
    Application.DisplayAlerts = False
    For Each x In Sheets
        If x.Name <> "Sheet1" Then x.Delete
    Next x
End Sub

'查找文本
Sub test2()
    Dim p, f
    p = ThisWorkbook.Path & "\"
    f = Dir(p & "*.txt")
    Do While f <> ""
        Call test3(p, f)
        f = Dir
    Loop
End Sub

'文本导入工作表
Sub test3(p, f)
    Dim A
    Open p & f For Input As #1
    A = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)
    Close #1

    Sheets.Add after:=Sheets(Sheets.Count)
    Range("a1").Resize(UBound(A) + 1) = Application.Transpose(A)
    Range("a:a").TextToColumns ConsecutiveDelimiter:=True, Space:=True    '按空格分列
    ActiveSheet.Name = f
End Sub

导入.rar (12.13 KB, 下载次数: 21)

多个txt文件导入excel表.zip

11.99 KB, 下载次数: 4

发表于 2015-10-14 21:45 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2015-10-14 21:51 | 显示全部楼层
张雄友 发表于 2015-10-14 21:45
不是已经实现了吗?

那只是做了个效果
回复

使用道具 举报

 楼主| 发表于 2015-10-14 21:52 | 显示全部楼层
张雄友 发表于 2015-10-14 21:45
不是已经实现了吗?

我试着做了一个,没做出来,也不知道就那些格式的数据,能不能办到。

点评

效果是对的?如果是对的就没有错。  发表于 2015-10-15 07:53
回复

使用道具 举报

 楼主| 发表于 2015-10-15 08:45 | 显示全部楼层
哪位大神能帮忙弄一下,想得到的效果见附件。
回复

使用道具 举报

发表于 2015-10-15 13:08 | 显示全部楼层
金樽空对月 发表于 2015-10-15 08:45
哪位大神能帮忙弄一下,想得到的效果见附件。

一楼代码已能实现,你还想怎么实现?不懂你的意思啊大哥……
回复

使用道具 举报

 楼主| 发表于 2015-10-15 14:23 | 显示全部楼层
张雄友 发表于 2015-10-15 13:08
一楼代码已能实现,你还想怎么实现?不懂你的意思啊大哥……

我看下,哦,附件上传错误,那个只是提取单个文件的,现在已经更换了。
回复

使用道具 举报

发表于 2015-10-15 16:08 | 显示全部楼层    本楼为最佳答案   
'主程序
Sub test()
    Application.ScreenUpdating = False
    Call test1
    Call test2
End Sub

'清除工作表
Sub test1()
    Dim x
    Application.DisplayAlerts = False
    For Each x In Sheets
        If x.Name <> "Sheet1" Then x.Delete
    Next x
End Sub

'查找文本
Sub test2()
    Dim p, f
    p = ThisWorkbook.Path & "\"
    f = Dir(p & "*.txt")
    Do While f <> ""
        Call test3(p, f)
        f = Dir
    Loop
End Sub

'文本导入工作表
Sub test3(p, f)
    Dim A
    Open p & f For Input As #1
    A = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)
    Close #1

    Sheets.Add after:=Sheets(Sheets.Count)
    Range("a1").Resize(UBound(A) + 1) = Application.Transpose(A)
    Range("a:a").TextToColumns ConsecutiveDelimiter:=True, Space:=True    '按空格分列
    ActiveSheet.Name = f
End Sub

导入.rar (12.13 KB, 下载次数: 21)

评分

参与人数 1 +9 收起 理由
金樽空对月 + 9 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2015-10-15 16:29 | 显示全部楼层
爱疯 发表于 2015-10-15 16:08
'主程序
Sub test()
    Application.ScreenUpdating = False

这样更好啦,感谢!
回复

使用道具 举报

发表于 2015-10-15 20:53 | 显示全部楼层
金樽空对月 发表于 2015-10-15 16:29
这样更好啦,感谢!

其实也不是太好。

导入.rar

14.47 KB, 下载次数: 2

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-27 10:29 , Processed in 0.383478 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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