Excel精英培训网

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

[已解决]求助:哪位大大帮我写一个关于分列的代码

[复制链接]
发表于 2012-3-19 12:22 | 显示全部楼层 |阅读模式
见附件。想要把A列的内容分列成B列往后的结果。代码怎么写?每个单元格里都是通过逗号连接,但是逗号前后可能会有空格,这个不用管它,只要是A,B,C,D这些数据分列到各列单元格即可。谢谢。
最佳答案
2012-3-19 12:30
Sub a()
    Columns(1).Copy Range("b1")
    Columns(2).Replace " ", ""
    Application.DisplayAlerts = False
    Columns(2).TextToColumns Comma:=True   '对C列分列
End Sub
录制一个分列的宏,根据自己的情况再调整看看

3.zip

3.18 KB, 下载次数: 19

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-3-19 12:30 | 显示全部楼层    本楼为最佳答案   
Sub a()
    Columns(1).Copy Range("b1")
    Columns(2).Replace " ", ""
    Application.DisplayAlerts = False
    Columns(2).TextToColumns Comma:=True   '对C列分列
End Sub
录制一个分列的宏,根据自己的情况再调整看看
回复

使用道具 举报

 楼主| 发表于 2012-3-19 12:46 | 显示全部楼层
爱疯 发表于 2012-3-19 12:30
Sub a()
    Columns(1).Copy Range("b1")
    Columns(2).Replace " ", ""

爱疯大大,你好。我试着录了一下,代码如下,看不懂啊。
Sub Macro2()
'
' Macro2 Macro
'
'
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1)), _
        TrailingMinusNumbers:=True
End Sub

下面这个是针对A1单元格,分行的操作,也不是很懂,能否再帮帮忙?

Sub qiege()
Dim arr As Variant
arr = Split(Cells(1, 1), ",")
Cells(1, 1).Resize(UBound(arr) + 1, 1) = Application.Transpose(arr)
End Sub
回复

使用道具 举报

发表于 2012-3-19 13:08 | 显示全部楼层
skyline_zwl 发表于 2012-3-19 12:46
爱疯大大,你好。我试着录了一下,代码如下,看不懂啊。
Sub Macro2()
'

Macro2()只是一个方法,因是录制宏,所以有很多参数。含义可看帮助:Range.TextToColumns 方法


Sub qiege()
    Dim arr As Variant
    '对A1的值以逗号作为分隔符,生成一维数组arr
    arr = Split(Cells(1, 1), ",")
    '将arr转置后,输出到A1
    Cells(1, 1).Resize(UBound(arr) + 1, 1) = Application.Transpose(arr)
End Sub
回复

使用道具 举报

发表于 2012-3-19 13:09 | 显示全部楼层
爱疯 发表于 2012-3-19 12:30
Sub a()
    Columns(1).Copy Range("b1")
    Columns(2).Replace " ", ""

注释写错了不是C列,是B列
回复

使用道具 举报

 楼主| 发表于 2012-3-19 13:34 | 显示全部楼层
爱疯 发表于 2012-3-19 13:09
注释写错了不是C列,是B列

测试通过,十分感谢。能否再追问一句,我忽略了一个问题,A列有的单元格里是有强制换行的,如何取消?
回复

使用道具 举报

发表于 2012-3-19 14:28 | 显示全部楼层
skyline_zwl 发表于 2012-3-19 13:34
测试通过,十分感谢。能否再追问一句,我忽略了一个问题,A列有的单元格里是有强制换行的,如何取消?

还是通过录制宏可找到。

'A列自动换行
Columns("A:A").WrapText = True
回复

使用道具 举报

 楼主| 发表于 2012-3-19 14:37 | 显示全部楼层
爱疯 发表于 2012-3-19 14:28
还是通过录制宏可找到。

'A列自动换行

十分感谢。比自己录制宏好多了。。。
回复

使用道具 举报

 楼主| 发表于 2012-3-19 14:40 | 显示全部楼层
爱疯 发表于 2012-3-19 14:28
还是通过录制宏可找到。

'A列自动换行

送你一张卡,略表谢意

点评

谢谢了  发表于 2012-3-19 14:46
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 14:07 , Processed in 1.380382 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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