我在一行中的不同单元格中有一组数字,如下所示:
1 2 3 4 5 6 7 8 9 10
不同单元格中的所有数字。
我想实现这个目标:
1 2
3 4
5 6
7 8
9 10
由于我有超过10个号码,我想自动执行此操作 有快速的方法吗?谢谢。
+ 复制像100列并将其粘贴到一行使用转置函数,但当列达到40,000时。它不起作用。我如何使其工作?
答案 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)
是一个回归方程,用于将行号与所需的偏移量相匹配。