Excel精英培训网

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

[已解决]按A列在文件同目录下生成txt文件,并将b和c两列合并写入txt。

[复制链接]
发表于 2016-5-13 17:02 | 显示全部楼层 |阅读模式

如题:按地市在同目录下生成txt文件,并将b和c两列合并写入txt。





A                B                             C

西安
A
2
西安
A
3
西安
A
4
西安
A
5
渭南
E
1
渭南
E
2
渭南
E
3
渭南
E
4
咸阳
X
1
咸阳
X
2
咸阳
X
3
咸阳
X
4
西安
A
1
渭南
E
7

最佳答案
2016-5-13 21:13
举例2.rar (27.38 KB, 下载次数: 10)

举例.zip

16.23 KB, 下载次数: 4

发表于 2016-5-13 17:35 | 显示全部楼层
Sub Click()
    Dim A, B(), i, s, p$
    p = ThisWorkbook.Path & "\"
    Range("a1").CurrentRegion.Sort key1:=[a1], order1:=xlAscending, _
                                   key2:=[b1], order2:=xlAscending, _
                                   key3:=[c1], order3:=xlAscending, _
                                   Header:=xlNo

    A = Range("a1").CurrentRegion
    For i = 1 To UBound(A)
        s = s + 1
        ReDim Preserve B(1 To s)
        B(s) = A(i, 2) & A(i, 3)

        If i = UBound(A) Then
            Call writeText(B, p, A(i, 1)): Erase B
        ElseIf A(i, 1) <> A(i + 1, 1) Then
            Call writeText(B, p, A(i, 1)): Erase B
        End If
    Next i
End Sub

Sub writeText(B, p, f)
    Dim i
    Open p & f & ".txt" For Output As #1
    For i = 1 To UBound(B)
       Print #1, B(i)
    Next i
    Close #1
End Sub


举例.rar (27.29 KB, 下载次数: 6)
回复

使用道具 举报

 楼主| 发表于 2016-5-13 21:02 | 显示全部楼层
爱疯 发表于 2016-5-13 17:35
Sub Click()
    Dim A, B(), i, s, p$
    p = ThisWorkbook.Path & "\"

你的稍微有些问题,排在前面的生成的TXT是从第一行写起,后边的都不是。能改改吗?
回复

使用道具 举报

发表于 2016-5-13 21:06 | 显示全部楼层
能举例说下,哪个地方错了,应该是什么吗?
回复

使用道具 举报

发表于 2016-5-13 21:13 | 显示全部楼层    本楼为最佳答案   
举例2.rar (27.38 KB, 下载次数: 10)
回复

使用道具 举报

 楼主| 发表于 2016-5-13 21:40 | 显示全部楼层
爱疯 发表于 2016-5-13 21:13
确实是我忘了给s清零,谢谢提醒!

还是版主牛
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 08:34 , Processed in 0.400492 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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