Excel精英培训网

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

[已解决]如何合并代码

[复制链接]
发表于 2015-10-13 20:33 | 显示全部楼层 |阅读模式
本帖最后由 lijian8003 于 2015-10-16 20:19 编辑

下列VBA是将excel一列数据导入txt,共有702列,如何用 For y = 1 To 702 合并成一个?

Sub 导出1()
Dim i&, j%, k, s, arr
      arr = Sheets("参数").UsedRange
      Open "d:\分解\参数\" & "0001.txt" For Output As #1
          For i = 1 To 1470
              s = ""
              For j = 1 To 1 '假设数据区域有多列
                s = s & vbTab & arr(i, j)
              Next
              Print #1, Mid(s, 2)
          Next
      Close #1
End Sub

Sub 导出2()
Dim i&, j%, k, s, arr
      arr = Sheets("参数").UsedRange
      Open "d:\分解\参数\" & "0002.txt" For Output As #1
          For i = 1 To 1470
              s = ""
              For j = 2 To 2 '假设数据区域有多列
                s = s & vbTab & arr(i, j)
              Next
              Print #1, Mid(s, 2)
          Next
      Close #1
End Sub

Sub 导出3()
Dim i&, j%, k, s, arr
      arr = Sheets("参数").UsedRange
      Open "d:\分解\参数\" & "0003.txt" For Output As #1
          For i = 1 To 1470
              s = ""
              For j = 3 To 3 '假设数据区域有多列
                s = s & vbTab & arr(i, j)
              Next
              Print #1, Mid(s, 2)
          Next
      Close #1
End Sub

......

Sub 导出702()
Dim i&, j%, k, s, arr
      arr = Sheets("参数").UsedRange
      Open "d:\分解\参数\" & "0702.txt" For Output As #1
          For i = 1 To 1470
              s = ""
              For j = 702 To 702 '假设数据区域有多列
                s = s & vbTab & arr(i, j)
              Next
              Print #1, Mid(s, 2)
          Next
      Close #1
End Sub
  1. Sub 导出()
  2. Dim i&, j%, k, s, arr
  3. arr = Sheets("参数").UsedRange
  4. For x = 1 To 702
  5. Open "d:\分解\参数" & Right("000" & x, 4) & ".txt" For Output As #1
  6. For i = 1 To 1470
  7. s = ""
  8. For j = x To x '假设数据区域有多列
  9. s = s & vbTab & arr(i, j)
  10. Next
  11. Print #1, Mid(s, 2)
  12. Next
  13. Next
  14. Close #1
  15. End Sub
复制代码
自己写了一个代码,显示错误。如何修改?
最佳答案
2015-10-13 23:35

Sub test()
    Dim j
    For j = 1 To 702
        Call 导出1(j)
    Next j
End Sub

Sub 导出1(j)
    Dim i&, k, s, arr
    arr = Sheets("参数").UsedRange
    Open "d:\分解\参数\" & Format(j, "0000") & ".txt" For Output As #1
    For i = 1 To 1470
        s = ""
'        For j = 1 To 1    '假设数据区域有多列
            s = s & vbTab & arr(i, j)
'        Next
        Print #1, Mid(s, 2)
    Next
    Close #1
End Sub



如果内循环j只运行1次,可不必循环

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-10-13 23:35 | 显示全部楼层    本楼为最佳答案   

Sub test()
    Dim j
    For j = 1 To 702
        Call 导出1(j)
    Next j
End Sub

Sub 导出1(j)
    Dim i&, k, s, arr
    arr = Sheets("参数").UsedRange
    Open "d:\分解\参数\" & Format(j, "0000") & ".txt" For Output As #1
    For i = 1 To 1470
        s = ""
'        For j = 1 To 1    '假设数据区域有多列
            s = s & vbTab & arr(i, j)
'        Next
        Print #1, Mid(s, 2)
    Next
    Close #1
End Sub



如果内循环j只运行1次,可不必循环

评分

参与人数 1 +3 收起 理由
lijian8003 + 3 很给力!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-23 21:45 , Processed in 0.288011 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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