excel中怎么用函数或者宏批量将一个列中的数据按要求分成很多行?

举例
A1
A2
A3
B1
B2
B3
改成A1,A2,A3,然后另起一行,B1,B2,B3,

请问你要将A列分成几列,我写一个VBA给你。

Sub 宏1()
Dim lastrow As Long, i As Long, k As Long
lastrow = Cells(Rows.Count, 1).End(3).Row
i = 1
k = 1
Do While i <= lastrow
    Cells(k, 2) = Cells(i, 1)
    Cells(k, 3) = Cells(i + 1, 1)
    Cells(k, 4) = Cells(i + 2, 1)    '分n列则做n次
    i = i + 3    '下移n行
    k = k + 1
Loop
End Sub

追问

数据全在sheet1的A1列,A1,A2,A3是一个人的信息,然后我想变成A1,B1,C1。A4,A5,A6又是另一个人的信息,接着就变成A2,B2,B3。如果不能实现,变成B4,B5,B6也行,到时候我自己去除空行。

追答Sub 宏1()
Dim lastrow As Long, i As Long, k As Long
lastrow = Cells(Rows.Count, 1).End(3).Row
i = 1
k = 2
Do While i <= lastrow
    Cells(k, 4) = Cells(i, 1)    'B4
    Cells(k, 5) = Cells(i + 1, 1)    'B5
    Cells(k, 6) = Cells(i + 2, 1)    'B6
    i = i + 3    '下移n行
    k = k + 1
Loop
End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-03-05
B1 输入公式=OFFSET($A$1,COLUMN()+ROW()*3-5,)
右拉至D1,在选B1:D1下拉.
第2个回答  2017-03-05
这个得看原始数据特征 这样写举例没有意义。
相似回答