excel怎么做分列宏?

如题所述

看图:

附件可下载参考

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-11-17
Sub 数据拆分()
    Dim i As Integer, j As Integer, Arr
    For j = 1 To [a65536].End(3).Row
        Arr = Split(Cells(j, 1), ",")
        k = UBound(Arr)
    Range(Cells(j, "e"), Cells(j, k + 5)) = Arr
    Next j
End Sub

追问

受累能不能给打个注释,有的地方看不太懂,比如数据源单元格变了,输出的首个单元格行列变了要怎么变通呢?比如这个图,B21是数据源了,我想让它在B22开始,应该怎么修改呢

追答

第3行:建立A列中从第1行起到最末一行的行的循环
第4行:将A列单元格中的数据以【,】为分隔符装入数组Arr中
第5行:计算数组Arr的元素个数
第6行:将数组Arr的各元素输出到从E列起的行中
第7行:退出J的循环

追问

OK   研究的差不多了,最后一个问题,就是Range(Cells(22, "b"), Cells(22, k + 5)) = Arr 里
k+5换成K是只能取到两个,这个怎么理解,因为我的数据源里数据个数不一定,这个应该怎么定义呢,我不想弄太长后面出现#N/A如图

追答Sub 数据拆分()
    Dim i As Integer, j As Integer, Arr
        Arr = Split(Cells(21, 2), ",")
        k = UBound(Arr)
    Range(Cells(22, "b"), Cells(22, k + 2)) = Arr
End Sub

本回答被提问者和网友采纳
相似回答