在Excel中将列转置为1000个批次中的其他列

我有一个工作表,我将7000行数据粘贴到A1列。 当他的数据A1000,我想下1000行到列B,填充单元格B1:B1000。 我希望下一个1000到C列,填充单元格C1:C1000等。理想情况下,我希望通过公式发生这种情况。 我不想使用任何手动命令(即移调等)

我已经看过类似的问题,并没有find一个具体回答我的问题 – 预先感谢!

使用这个公式:

=IF(ROW()>1000,"",IFERROR(INDEX(Sheet1!$A:$A,ROW()+(COLUMN(A1)-1)*1000),"")) 

Sheet1!$ A:$ A是sheet1中的数据
在另一个表格中,将上面的公式写入A1,并将其拖动到列和行中

在这里输入图像说明

在工作表的代码表中。

 Option Explicit Const iMAX As Long = 5 Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1")) Is Nothing Then On Error GoTo safe_exit Application.EnableEvents = False Dim r As Long For r = iMAX + 1 To Cells(Rows.Count, "A").End(xlUp).Row Step iMAX With Cells(r, "A").Resize(iMAX, 1) Debug.Print .Address .TextToColumns Destination:=.Parent.Cells(1, 1).Offset(0, r / iMAX), _ DataType:=xlFixedWidth, FieldInfo:=Array(0, 1) .Clear End With Next r End If safe_exit: Application.EnableEvents = True End Sub 

在这里输入图像说明