Excel精英培训网

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

[已解决]新手求助将execl的sheet1中的列A,C,E导出,并生成txt文件

[复制链接]
发表于 2013-6-21 16:24 | 显示全部楼层 |阅读模式
将execl的sheet1中的列A,C,E导出,并生成txt文件
每个单元格数据间“,”隔开
每行最后一个数据“;”结束


表中数据
A  C  E
1  3  4
2  5  7
4  9  6


txt数据
1,3,4;
2,5,7;
4,9,6;
最佳答案
2013-6-25 19:20
  1. Sub ACEToTXT()
  2.     Dim arr
  3.     Dim fileNO
  4.     Dim strFile$
  5.     Dim i As Long
  6.     On Error GoTo ErrorHandler:

  7.     strFile = ThisWorkbook.Path & Application.PathSeparator & Format(Now, "yyyymmddhhmm") & ".txt"
  8.     fileNO = FreeFile
  9.     Open strFile For Output Access Write As #fileNO
  10.     arr = ActiveSheet.UsedRange.Columns("a:e").Value
  11.     For i = 1 To UBound(arr)
  12.         Print #fileNO, IIf(IsNumeric(arr(i, 1)), Format(arr(i, 1), "000000"), arr(i, 1)) & "," & IIf(IsNumeric(arr(i, 3)), Format(arr(i, 3), "000000"), arr(i, 3)) & "," & IIf(IsNumeric(arr(i, 5)), Format(arr(i, 5), "000000"), arr(i, 5))
  13.     Next
  14.     Close #fileNO
  15.     MsgBox "文件导出到 " & strFile
  16.     Exit Sub
  17.    
  18. ErrorHandler:
  19.     MsgBox Err.Number & vbCrLf & _
  20.            Err.Description
  21.     Err.Clear
  22.     Close #fileNO
  23. End Sub
复制代码
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-6-21 16:30 | 显示全部楼层
回复

使用道具 举报

发表于 2013-6-21 16:40 | 显示全部楼层
本帖最后由 hwc2ycy 于 2013-6-21 16:42 编辑
  1. Sub ACEToTXT()
  2.     Dim arr
  3.     Dim fileNO
  4.     Dim strFile$
  5.     Dim i As Long
  6.     strFile = ThisWorkbook.Path & Application.PathSeparator & Format(Now, "yyyymmddhhmm") & ".txt"
  7.     fileNO = FreeFile
  8.     Open strFile For Output Access Write As #fileNO
  9.     arr = Range("a1").CurrentRegion
  10.     For i = 1 To UBound(arr)
  11.         Print #fileNO, arr(i, 1) & "," & arr(i, 3) & "," & arr(i, 5)
  12.     Next
  13.     Close #fileNO
  14.     MsgBox "ok"
  15. End Sub
复制代码
回复

使用道具 举报

发表于 2013-6-21 16:42 | 显示全部楼层
  1. Sub ACEToTXT()
  2.     Dim arr
  3.     Dim fileNO
  4.     Dim strFile$
  5.     Dim i As Long
  6.     strFile = ThisWorkbook.Path & Application.PathSeparator & Format(Now, "yyyymmddhhmm") & ".txt"
  7.     fileNO = FreeFile
  8.     Open strFile For Output Access Write As #fileNO
  9.    
  10.     arr = Range("a1").CurrentRegion
  11.     For i = 1 To UBound(arr)
  12.         'Print #fileNO, arr(i, 1) & "," & arr(i, 3) & "," & arr(i, 5)
  13.         Write #fileNO, arr(i, 1), arr(i, 3), arr(i, 5)
  14.     Next
  15.     Close #fileNO
  16.     MsgBox "文件导出到 " & strFile
  17. End Sub
复制代码
回复

使用道具 举报

发表于 2013-6-21 16:44 | 显示全部楼层
  1. Sub ACEToTXT()
  2.     Dim arr
  3.     Dim fileNO
  4.     Dim strFile$
  5.     Dim i As Long
  6.     On Error GoTo ErrorHandler:

  7.     strFile = ThisWorkbook.Path & Application.PathSeparator & Format(Now, "yyyymmddhhmm") & ".txt"
  8.     fileNO = FreeFile
  9.     Open strFile For Output Access Write As #fileNO
  10.     arr = Range("a1").CurrentRegion
  11.     For i = 1 To UBound(arr)
  12.         'Print #fileNO, arr(i, 1) & "," & arr(i, 3) & "," & arr(i, 5)
  13.         Write #fileNO, arr(i, 1), arr(i, 3), arr(i, 5)
  14.     Next
  15.     Close #fileNO
  16.     MsgBox "文件导出到 " & strFile
  17.     Exit Sub
  18.    
  19. ErrorHandler:
  20.     MsgBox Err.Number & vbCrLf & _
  21.            Err.Description
  22.     Err.Clear
  23.     Close #fileNO
  24. End Sub
复制代码
回复

使用道具 举报

发表于 2013-6-21 16:45 | 显示全部楼层
ErrorHandler:
    MsgBox Err.Number & vbCrLf & _
           Err.Description
    Err.Clear
    Close #fileNO
这里的CLOSE语句兴许可以不要
回复

使用道具 举报

发表于 2013-6-21 16:46 | 显示全部楼层
不必用VBA,用EXCEL另存为txt文件即可:
A              B              C               D              E             F
1        ,        3        ,        7        ;
1        ,        3        ,        7        ;
1        ,        3        ,        7        ;
1        ,        3        ,        7        ;
1        ,        3        ,        7        ;
1        ,        3        ,        7        ;
1        ,        3        ,        7        ;
1        ,        3        ,        7        ;
1        ,        3        ,        7        ;
1        ,        3        ,        7        ;
1        ,        3        ,        7        ;
在BDF列添加,;,再将excel文件另存为后缀名为txt文件。更适合不懂vba的人。
回复

使用道具 举报

发表于 2013-6-21 16:50 | 显示全部楼层
如果你的工作表内BD列无数据的话,那我的代码就不适用了。
回复

使用道具 举报

 楼主| 发表于 2013-6-21 17:33 | 显示全部楼层
hwc2ycy 发表于 2013-6-21 16:44

下标越界
这个是什么意思,新手
回复

使用道具 举报

 楼主| 发表于 2013-6-21 17:38 | 显示全部楼层
zhxqer 发表于 2013-6-21 17:33
下标越界
这个是什么意思,新手

搞懂了,谢谢啊!~~
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 04:18 , Processed in 0.188184 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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