我有一个工作表,我将7000行数据粘贴到列A1中。当他的数据A1000,我想要下一1000行到列B,填充单元格B1:B1000。我希望下一个1000转到C列,填充单元格C1:C1000等。理想情况下,我希望通过公式来实现。我不想使用任何手动命令(即转置等)在Excel中批量转换列为其他列中的列
我看过类似的问题,并没有找到一个具体回答我的问题 - 预先感谢!
我有一个工作表,我将7000行数据粘贴到列A1中。当他的数据A1000,我想要下一1000行到列B,填充单元格B1:B1000。我希望下一个1000转到C列,填充单元格C1:C1000等。理想情况下,我希望通过公式来实现。我不想使用任何手动命令(即转置等)在Excel中批量转换列为其他列中的列
我看过类似的问题,并没有找到一个具体回答我的问题 - 预先感谢!
在工作表的代码表中。
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
这是完美的。谢谢。 – TheJDScott
的IFERROR似乎有点多余;我无法看到INDEX返回#N/A的任何方式,但它*可能*返回* 0 *而不是空白单元格。 – Jeeped
它在1000处切断,但我希望数据表中的单元格A1001开始在我的其他表格中填充单元格B1:B1000。一旦B1000被填充,我希望它开始填充C1:C1000。那有意义吗? – TheJDScott
只需将第一行中的公式水平拖动即可 – yass