Excel精英培训网

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

[已解决]如何批量保存EXCEL表中单元格内容为txt文件?

[复制链接]
发表于 2016-3-8 12:06 | 显示全部楼层 |阅读模式
本帖最后由 abn223 于 2016-3-8 18:38 编辑

如何批量保存EXCEL表中单元格内容为txt文件?

比如EXCEL表中A列是物品名称,B列是物品的具体内容,现在想批量保存B单元格内容大于0、以A单元格内容为文件名B单元格内容为文件内容格式为txt文本的txt文件

如下表,可以保存为8个txt文件,电视机.txt、电冰箱.txt、空调.txt、洗衣机.txt、自行车.txt、摄像机.txt、播放器.txt、影碟机.txt。电饭锅、照相机因为B列没有内容(B单元格为0)所以不保存。


(实际EXCEL表的内容有200多行,下表只是简单的例举)

却不知如何下手,
如何实现?请帮助,谢谢!

ABC
1
电视机10000台
2
电冰箱10001台
3
电饭锅
0
4
空调10003台
5
洗衣机10004台
6
自行车10005台
7
照相机
0
8
摄像机10007台
9
播放器10008台
10
影碟机10009台


最佳答案
2016-3-8 12:26
  1. Sub savetext()
  2.     Dim arr, istr As String, ipath As String
  3.     Dim n%
  4.     arr = Range("a1:b10").Value
  5.     For n = 1 To UBound(arr, 1)
  6.         If arr(n, 2) > 0 Then
  7.             ipath = ThisWorkbook.Path & "" & arr(n, 1) & ".txt"
  8.             istr = arr(n, 2)
  9.             Open ipath For Output As #1
  10.             Print #1, istr
  11.             Close #1
  12.         End If
  13.     Next n
  14. End Sub
复制代码
没有验证,自己运行下看看有没有错。

批量保存.rar

7.43 KB, 下载次数: 6

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-3-8 12:26 | 显示全部楼层    本楼为最佳答案   
  1. Sub savetext()
  2.     Dim arr, istr As String, ipath As String
  3.     Dim n%
  4.     arr = Range("a1:b10").Value
  5.     For n = 1 To UBound(arr, 1)
  6.         If arr(n, 2) > 0 Then
  7.             ipath = ThisWorkbook.Path & "" & arr(n, 1) & ".txt"
  8.             istr = arr(n, 2)
  9.             Open ipath For Output As #1
  10.             Print #1, istr
  11.             Close #1
  12.         End If
  13.     Next n
  14. End Sub
复制代码
没有验证,自己运行下看看有没有错。
回复

使用道具 举报

 楼主| 发表于 2016-3-10 14:43 | 显示全部楼层
wp8680 发表于 2016-3-8 12:26
没有验证,自己运行下看看有没有错。

你好,谢谢你帮助,试下看看,谢谢!
回复

使用道具 举报

 楼主| 发表于 2016-3-11 09:57 | 显示全部楼层
有没有更好的?请各位帮助,谢谢!
回复

使用道具 举报

发表于 2016-3-11 11:31 | 显示全部楼层
Sub test()
    Dim A, p, i
    A = Range("a1").CurrentRegion
    p = ThisWorkbook.path & "\"
    For i = 1 To UBound(A)
        If A(i, 2) <> 0 Then Call writeTxt4(p, A(i, 1) & ".txt", A(i, 2))
    Next i
End Sub


Sub writeTxt4(p, f, str)
    With CreateObject("Scripting.FileSystemObject").CreateTextFile(p & f, True, -1)
        .Write str
        .Close
    End With
End Sub


回复

使用道具 举报

 楼主| 发表于 2016-3-19 18:01 | 显示全部楼层
wp8680 发表于 2016-3-8 12:26
没有验证,自己运行下看看有没有错。

你好,谢谢你的帮助,要的就是这,谢谢!
回复

使用道具 举报

 楼主| 发表于 2016-3-19 18:02 | 显示全部楼层
爱疯 发表于 2016-3-11 11:31
Sub test()
    Dim A, p, i
    A = Range("a1").CurrentRegion

你好,谢谢你的帮助,谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-7 20:35 , Processed in 0.585338 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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