24小时热门版块排行榜    

Znn3bq.jpeg
查看: 1109  |  回复: 9

starfriend

金虫 (正式写手)

[求助] Excel数据批量保存成文件 已有2人参与

想要批量保存文件,却不知如何下手。
比如有101列数据,第1列为X,第2列到第101列为Y1, Y2, ..., Y100。如何批量保存(X, Y1)为一个文件,以此类推,..., (X,Y100)为第100个文件;同时都保存文件名为1,2,...,100,格式为Tab delimited (.txt)。
小弟对语言不是很精通~请问如何实现?越简单越好~多谢各位!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

starfriend

金虫 (正式写手)

大神们去哪儿了?
2楼2015-01-28 04:18:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingxb

金虫 (正式写手)

迷途书虫

【答案】应助回帖

感谢参与,应助指数 +1
这种活可以直接用python来做,将execle文件作为一个对象打开,读入写出,相当简单。
http://sites.google.com/site/nwnuatom/个人网站,欢迎猛击乱点!
3楼2015-01-28 09:43:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

me_yu

木虫 (正式写手)

标记一下

[ 发自小木虫客户端 ]
听,寂静的夜里,田野里蛙声和虫鸣,好不欢快!
4楼2015-01-28 17:56:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhouxiaochun

铁杆木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
starfriend: 金币+50, ★★★★★最佳答案, Nice assist 2015-01-29 07:39:21
直接给代码,附件上传几次都没成功。

Sub SaveAsFiles()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Dim lj     As String
    Dim newfile As Object
    Dim mainfilename As String
    lj = ActiveWorkbook.Path
    mainfilename = ActiveWorkbook.Name
    For i = 1 To [iv2].End(xlToLeft).Column - 1
        Set newfile = Workbooks.Add
        Workbooks(mainfilename).Sheets(1).Columns(1).Copy newfile.Sheets(1).Cells(1, 1)
        Workbooks(mainfilename).Sheets(1).Columns(i + 1).Copy newfile.Sheets(1).Cells(1, 2)
        newfile.SaveAs Filename:=lj & "/" & i & ".xls"
        newfile.SaveAs Filename:=lj & "/" & i & ".txt", FileFormat:=xlText, CreateBackup:=False
        newfile.Close False
    Next
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    MsgBox "共完成" & i - 1 & "组拆分"
End Sub
5楼2015-01-28 23:57:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

starfriend

金虫 (正式写手)

引用回帖:
5楼: Originally posted by zhouxiaochun at 2015-01-28 23:57:48
直接给代码,附件上传几次都没成功。

Sub SaveAsFiles()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Dim lj     As String
    Dim newfile As Object
    Dim ma ...

是用EXCEL 的VBA吧?昨天我在其他的地方也获得了帮助,不过并没有完全完成~ 先感谢你!我先研究下试试看~稍后给你奖励!
6楼2015-01-29 05:39:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

starfriend

金虫 (正式写手)

引用回帖:
5楼: Originally posted by zhouxiaochun at 2015-01-28 23:57:48
直接给代码,附件上传几次都没成功。

Sub SaveAsFiles()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Dim lj     As String
    Dim newfile As Object
    Dim ma ...

我试了,基本成功了~唯一一点缺憾是导出的文件再导入其他一个软件时 第一行的内容不能被识别为改列的名字 (first line as column names)。不过除此之外还是很好的,所以不食言,金币送上~~
7楼2015-01-29 07:38:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhouxiaochun

铁杆木虫 (正式写手)

引用回帖:
7楼: Originally posted by starfriend at 2015-01-29 07:38:03
我试了,基本成功了~唯一一点缺憾是导出的文件再导入其他一个软件时 第一行的内容不能被识别为改列的名字 (first line as column names)。不过除此之外还是很好的,所以不食言,金币送上~~...

第一行可以设为标题列,也可不设,直接是数据开始行。
8楼2015-01-29 19:44:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

starfriend

金虫 (正式写手)

引用回帖:
8楼: Originally posted by zhouxiaochun at 2015-01-29 19:44:05
第一行可以设为标题列,也可不设,直接是数据开始行。...

我就是差不多这个意思~当导入单一文件到其他一个软件的时候第一行是可以被识别为标题的,但是当批量导入的时候不能成功,提示文件之间不统一。所以我就跳过标题行,直接输入数据导入就可以。就是这个小缺憾,估计是和输出的格式有关系~~
之前在另外一个地方也获得了帮助,代码如下:

Sub 另存()
Dim i As Long
Dim str As String
Dim l&
l = Cells(1, Columns.Count).End(xlToLeft).Column

str = ThisWorkbook.Path & "\"
Set fs = CreateObject("Scripting.FileSystemObject"

k = 1
For i = 1 To l
   If k >= l Then Exit For
   Set a = fs.CreateTextFile(k & ".txt", True)
   k = k + 1
   
   t = Cells(1, 1) & "-" & Cells(1, k)
   a.WriteLine (t)  '把I行的相应的数据写入TXT文件
a.Close
Set a = Nothing
Next i
End Sub

可以识别标题行,不过不能读取多数据,我觉得他可能写错了,可能是把I“列”的相应的数据写入TXT文件。
9楼2015-01-30 07:43:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

starfriend

金虫 (正式写手)

重新贴一次代码

Sub 另存()
Dim i As Long
Dim str As String
Dim l&
l = Cells(1, Columns.Count).End(xlToLeft).Column
str = ThisWorkbook.Path & "\"
Set fs = CreateObject("Scripting.FileSystemObject"
k = 1
For i = 1 To l
   If k >= l Then Exit For
   Set a = fs.CreateTextFile(k & ".txt", True)
   k = k + 1
   
   t = Cells(1, 1) & " " & Cells(1, k)
   a.WriteLine (t)  '把I行的相应的数据写入TXT文件
a.Close
Set a = Nothing
Next i
End Sub
10楼2015-01-30 07:51:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 starfriend 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考博] 化学专业申博 +3 赵子羊 2026-05-23 4/200 2026-05-24 18:10 by 工大学长
[硕博家园] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 1rx34o113h 2026-05-23 3/150 2026-05-24 17:41 by 0i3mu4vkjz
[基金申请] 评审有感 +16 popular289 2026-05-18 27/1350 2026-05-24 17:34 by hhs666
[教师之家] 论文撤稿了 +4 bjvtcliu 2026-05-24 7/350 2026-05-24 17:29 by bjvtcliu
[硕博家园] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 hvkbtfonbv 2026-05-23 4/200 2026-05-24 17:21 by 75ui6h7z2t
[考博] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 hvkbtfonbv 2026-05-23 3/150 2026-05-24 17:01 by 75ui6h7z2t
[考研] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 a2tycdlnq1 2026-05-23 5/250 2026-05-24 16:21 by hhx1yx9evi
[基金申请] 河北省自然科学基金 +6 Peterchao 2026-05-18 9/450 2026-05-24 16:02 by 130067131
[硕博家园] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 pmo95bazuy 2026-05-23 8/400 2026-05-24 15:56 by 1uy1ht2y9r
[教师之家] 某211大学教师把个人教师官方主页改成:我跑了我跑了我跑了!官宣跑路! +4 zju2000 2026-05-21 5/250 2026-05-24 09:35 by songwz
[考博] 26/27申博自荐 10+4 ZXW0202 2026-05-22 9/450 2026-05-24 08:47 by bjvtcliu
[基金申请] 青B发送上会通知了吗 +5 chemBioBro 2026-05-22 7/350 2026-05-23 12:35 by zhuifengzhy
[考博] 博士申请 +3 焦晓明 2026-05-21 3/150 2026-05-23 11:26 by mlc840311
[文学芳草园] 献血感触 +7 呀呀好傻 2026-05-19 13/650 2026-05-21 20:15 by 呀呀好傻
[基金申请] 国自然评分 +4 无名者登山 2026-05-20 5/250 2026-05-21 16:35 by swuq
[基金申请] 提交了我也来说说感想 +9 fummck 2026-05-20 10/500 2026-05-21 14:17 by draco1987
[有机交流] 反应很差,大量原料没有反应 5+3 Mr.Zot 2026-05-19 8/400 2026-05-20 22:19 by Equinoxhua
[考博] 如果工作了想读博,可以边工作边读全日制嘛? 30+3 铁达火车 2026-05-18 5/250 2026-05-20 09:33 by tfang
[考博] 博士申请 +5 星…… 2026-05-18 6/300 2026-05-18 23:49 by 糊糊涂涂好
[硕博家园] 我在等一个没有答案的答案 +3 Love_MH 2026-05-17 3/150 2026-05-18 02:22 by 竹林孤影
信息提示
请填处理意见