EXCEL求教,如何将一列中每200行数据生成一个TXT文件

  • q
    qyjqyj
    工作中经常需要将excel表格中一列数据中200行复制到一个txt文件,每次都是复制黏贴去做,求教,有啥方便的方法。
    网上搜索了一下,也不得法,在这求教大神。

    所有数据都在A列,有几万行,都是数字,每200个生成一个TXT文件,文件名从0-1-2-3.....依次下去。

    谢谢。
  • s
    sakjsak
    1. https://www.baidu.com/s?wd=每200行数据生成一个TXT文件&ie=UTF-8
    复制代码

    百度第一个不行吗
  • q
    qyjqyj
    回复2#sakjsak


    按照这个试过,好像一直不行
  • w
    wuyanzhicheng
    python?难度应该不高 数据不涉密的话可以发一个样例上来瞅瞅不?
  • q
    qyjqyj
    百度了这个,生成了TXT文件,现在是生成的TXT文件数字前后端都有双引号。

    VB脚本是这个:
    Sub ff() '。
    '前提:bai24000个数据放在当前工du作表zhi的A列中。
    '复制从Sub到End Sub之间的dao代码。
    '右键点击当前工作表→查看代码→在弹出窗口的"通用"下方的空白处进行Ctrl+v粘贴。
    '光标放在Sub到End Sub之间按键盘上的F5键运行代码。
    p = "d:\123\" '文件存放在D:\123下,可以修改。
    If Dir(p, vbDirectory) = "" Then MkDir p '。
    For r = 1 To 24000 Step 200 '。
    f = f + 1 '。
    Filename = p & Format(f, "000") & ".txt" '。
    Open Filename For Output As #1 '。
    For i = 1 To 200 '。
    Write #1, Cells(r + i - 1, 1) ' 把单元格的内容写入TXT文件中。 数据放在A列中。
    Next '。
    Close #1 ' 关闭文件。
    Next '。
    End Sub '。

    生成的TXT文件是这个:
    "86686304*******"
    "86337704*******"

    这个引号能不能不要?
  • s
    sakjsak
    write改成print试试
  • q
    qyjqyj
    现在我是去每个TXT文件中替换这个符号:" 。已经比以前要方便一些了。这个前后的引号有办法不生成吗?

    求教,谢谢。
  • q
    qyjqyj
    回复6#sakjsak


    你好,替换了之后,生成的TXT文件数字前后是一个空格,因为对TXT文件有要求,不可以有空格或者别的符号,有啥办法TXT文件单纯的一行一个数字么?
    谢谢.
  • s
    sakjsak
    回复8#qyjqyj

    我是纯小白,以上都是临时搜到的。
    空格的话,print后面语句加引号貌似可以解决,加哪里就不清楚,应该是cells那里
  • M
    Max
    1. Sub test()
    2. Dim ar, i&, j&, s, n&
    3. ar = [a1].CurrentRegion
    4. For i = 1 To UBound(ar) Step 100
    5. n = n + 1
    6. For j = i To i + 199
    7. If j > UBound(ar) Then Exit For
    8. s = s & ar(j, 1) & vbCrLf
    9. Next j
    10. Open ThisWorkbook.Path & "\" & n & ".txt" For Output As #1
    11. Print #1, s
    12. Close #1
    13. s = ""
    14. Next i
    15. End Sub
    复制代码
    搜到的 改了一下 可以用 但是会卡
  • q
    qyjqyj
    回复10#Max谢谢,试了一下,好像不行。
  • l
    lwjef
    Print #1, Trim(Cells(r + i - 1, 1))
  • q
    qyjqyj
    试过了,可以去除前后的空白,这样就完美了,真心说声谢谢。
    以下是完整的代码:

    Sub ff() '。
    '前提:数据放在当前工作表的A列中。
    '复制从Sub到End Sub之间的代码。
    '右键点击当前工作表→查看代码→在弹出窗口的"通用"下方的空白处进行Ctrl+v粘贴。
    '光标放在Sub到End Sub之间按键盘上的F5键运行代码。
    p = "d:\1\" '文件存放在D:\1下,可以修改。
    If Dir(p, vbDirectory) = "" Then MkDir p '。
    For r = 1 To 2000 Step 200 '。
    f = f + 1 '。
    Filename = p & Format(f, "000") & ".txt" '。
    Open Filename For Output As #1 '。
    For i = 1 To 200 '。
    Print #1, Trim(Cells(r + i - 1, 1)) ' 把单元格的内容写入TXT文件中。 数据放在A列中。
    Next '。
    Close '。
    Next '。
    End Sub '。
  • l
    lwjef
    笔芯
  • h
    hotlee
    execltotxt.zip.001(4.88 MB)execltotxt.zip.002(4.05 MB)
    xlsx改为xxx.xlsx,然后运行,试试这个
  • s
    songco
    Linux下,xls2csv加split一行搞定 I have spoken.
  • n
    ndyongqing
    回复13#qyjqyj


    这段代码有问题,最多输出A列的2200行数据。
  • s
    sakjsak
    回复17#ndyongqing


    For r = 1 To 2000 Step 200
    改下这里应该就可以了吧。。按你们实际行数
  • M
    Max
    回复11#qyjqyj

    喔 你把100改成200呢 我试了可以的啊 要去除空白的话再trim一下就好了