如何将一行中的多个单元格拆分为多列

时间:2016-08-17 08:24:50

标签: excel

我在一行中的不同单元格中有一组数字,如下所示:

1 2 3 4 5 6 7 8 9 10 

不同单元格中的所有数字。

我想实现这个目标:

1 2
3 4
5 6
7 8
9 10

由于我有超过10个号码,我想自动执行此操作 有快速的方法吗?谢谢。

+ 复制像100列并将其粘贴到一行使用转置函数,但当列达到40,000时。它不起作用。我如何使其工作?

2 个答案:

答案 0 :(得分:0)

假设您的数据位于Sheet1和第一行。 输出将在Sheet2中。 尝试此代码并根据需要进行更改。

Sub splitcolumn()
    Dim LastCol As Long, LastRow As Long
    On Error Resume Next
    LastCol = Sheets("Sheet1").Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column

    For i = 1 To LastCol
        Sheets("Sheet1").Select
        Range(Cells(1, i), Cells(1, i + 1)).Copy
        Sheets("Sheet2").Select
        LastRow = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
        Range("A" & LastRow + 1).PasteSpecial
        Application.CutCopyMode = False
        i = i + 1
    Next i
End Sub

在运行此代码之前,请确保在文件中创建了Sheet1和Sheet2。您还在Sheet1的第一行中有一些数据。

答案 1 :(得分:0)

假设您在A1:J10中有数字1到10:

     A    B    C    D    E    F    G    H    I    J  
1    1    2    3    4    5    6    7    8    9    10
2  

现在在指示的单元格中输入这些公式:

A2 = OFFSET($A$1,0,ROW()*2-4)
B2 = OFFSET($B$1,0,ROW()*2-4)

现在将公式拖动到您需要的位置。

备注

ROW()*2-4)是一个回归方程,用于将行号与所需的偏移量相匹配。