想要将左边一列的流水号生成右边的流水号段的模式,有没有大神指导一下可以怎么操作啊。要是只有几十、几百的手动制作也就算了,但是现在是几千几万的数据量,这要是真的手动做了估计眼睛就要瞎了……
明明上传了,怎么没看到了……再传一遍
这个不用VBA那就太难了
给一段代码试试吧
Sub AA()运行前:
运行代码:
运行后:
完全可以用公式解决。需要额外加两列作为辅助。
先看看上图,再看我的公式:
B2公式为:=IFERROR(IF(A2=A1+1,"",A2),A2)
按回车键结束公式。
C2公式为:=IFERROR(IF(A2=A3-1,"",A2),A2)
按回车键结束公式。
D2公式为:=INDEX(B:B,SMALL(IF(B:B<>"",ROW($1:$65536),4^8),ROW(A2)))&""
【注意】:这里要同时按 SHIFT+CTRL+回车键 结束公式。
E2公式为:=INDEX(C:C,SMALL(IF(C:C<>"",ROW($1:$65536),4^8),ROW(A2)))&""
【注意】:这里要同时按 SHIFT+CTRL+回车键 结束公式。
最后,同时选中B2 C2 D2 E2单元格,下拉,一起往下填充四列的公式就行了。
函数复杂
直接用代码完成
Sub 分段()
Dim i As Long, j As Long
Dim iRow As Long, lastRow
iRow = Range("B65536").End(xlUp).Row
Range("D2:D" & iRow) = "=C2-B2+1"
lastRow = 2
For i = 2 To iRow
For j = 1 To Cells(i, "D").Value
Cells(lastRow, "A") = Cells(i, "B") + j - 1
lastRow = lastRow + 1
Next j
Next i
Columns("d") = ""
End Sub
本回答被网友采纳