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开始,应该怎么修改呢
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/d52a2834349b033b4fbdf1e11cce36d3d539bdd7?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
追答第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如图
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/7a899e510fb30f24daba9f38c195d143ad4b03ec?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
追答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
本回答被提问者和网友采纳