Excel精英培训网

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

[已解决]一列数据变成行的转换,且另存为文本格式。

[复制链接]
发表于 2011-6-17 00:07 | 显示全部楼层 |阅读模式
本帖最后由 webroot 于 2011-6-17 09:10 编辑

现有一列数据,大概有4万行,要把此列数据按每1000行数据排列成一行,每个数据间用“;”作分隔符,每一行另存为一个文本文件,这个VBA该怎么写?

aaaa
bbbb
cccc
dddd
eeee
ffff
变成
aaaa;bbbb;cccc;eeee;ffff



最佳答案
2012-8-19 08:59
”,只有33000,不有在573条!“
楼主这个问题  我在帅哥代码的基础上给完善了一下  帅哥的代码时很好的  我顺着他的思路添加了一段代码  呵呵  代码贴出来  楼主把它贴进帅哥做的表格  给测试下就行了
  1. Sub 导出文本()
  2.     row1 = Sheets(1).Range("A65536").End(xlUp).Row
  3.     ARR1 = Sheets(1).Range("a1:a" & row1)
  4.     name1 = ThisWorkbook.Path & "" & "导出文件-" & Format(Date, "yyyymmdd")
  5.     name1 = name1 & ".txt"
  6.     Open name1 For Output As #1
  7.     m = UBound(ARR1) \ 1000
  8.     For i = 1 To m
  9.         Do
  10.             l = l + 1
  11.             S = S & ARR1((i - 1) * 1000 + l, 1) & ";"

  12.         Loop While l < 1000
  13.         Print #1, S
  14.         Print #1, vbLf
  15.         l = 0
  16.         S = ""
  17.     Next i
  18.     n = UBound(ARR1) Mod 1000
  19.     For i = 1 To n
  20.         S = S & ARR1(m * 1000 + i, 1) & ";"
  21.     Next i
  22.     Print #1, S
  23.     S = ""
  24.     Close #1
  25.     MsgBox "数据已导出"
  26. End Sub
复制代码

data.rar

274.09 KB, 下载次数: 15

data

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2011-6-17 01:17 | 显示全部楼层
回复 webroot 的帖子

导出数据到文本文件.rar (300.55 KB, 下载次数: 99)
回复

使用道具 举报

 楼主| 发表于 2011-6-17 08:14 | 显示全部楼层
谢谢,有一个问题,我的数据是33573条记录,你转出的文本统计后,只有33000,不有在573条!
回复

使用道具 举报

发表于 2012-8-19 07:46 | 显示全部楼层
真是高手啊,敬仰
回复

使用道具 举报

发表于 2012-8-19 08:59 | 显示全部楼层    本楼为最佳答案   
”,只有33000,不有在573条!“
楼主这个问题  我在帅哥代码的基础上给完善了一下  帅哥的代码时很好的  我顺着他的思路添加了一段代码  呵呵  代码贴出来  楼主把它贴进帅哥做的表格  给测试下就行了
  1. Sub 导出文本()
  2.     row1 = Sheets(1).Range("A65536").End(xlUp).Row
  3.     ARR1 = Sheets(1).Range("a1:a" & row1)
  4.     name1 = ThisWorkbook.Path & "" & "导出文件-" & Format(Date, "yyyymmdd")
  5.     name1 = name1 & ".txt"
  6.     Open name1 For Output As #1
  7.     m = UBound(ARR1) \ 1000
  8.     For i = 1 To m
  9.         Do
  10.             l = l + 1
  11.             S = S & ARR1((i - 1) * 1000 + l, 1) & ";"

  12.         Loop While l < 1000
  13.         Print #1, S
  14.         Print #1, vbLf
  15.         l = 0
  16.         S = ""
  17.     Next i
  18.     n = UBound(ARR1) Mod 1000
  19.     For i = 1 To n
  20.         S = S & ARR1(m * 1000 + i, 1) & ";"
  21.     Next i
  22.     Print #1, S
  23.     S = ""
  24.     Close #1
  25.     MsgBox "数据已导出"
  26. End Sub
复制代码
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-14 12:28 , Processed in 0.252506 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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