比如:
名称 课时
语文 1
数学 2
英语 1
思想 5
当课时大于1的时候,把所在的这一行自动复制,并且复制的遍数等于课时的数字-1,如思想,课时>1,然后自动复制5-1=4遍,,谢谢
补充:需要自动复制到这一行的下面而不是另一个工作表中。
1、以C列为辅助列,在C2单元格输入以下公式,然后向下填充公式
=SUM(B$2:B2)-B2
2、输入以下公式,然后向下填充公式,得到规定次数的所有名称
=IF(ROW(A1)-1>=SUM(B:B),"",LOOKUP(ROW(A1)-1,C:C,A:A))
3、F列的课时列,可以根据需要,全部输入1,或者F2输入=VLOOKUP(E2,A:B,2,0),然后向下填充公式,得到B列的对应课时。
在工作表插入如下VBA程序:
Sub 自动复制()
Dim i As Long
For i = Range("A65536").End(xlUp).Row To 2 Step -1
If Range("B" & i).Value = 2 Then
Rows(i & ":" & i).Select
Selection.Copy
Selection.Insert Shift:=xlDown
End If
If Range("B" & i).Value > 2 Then
Rows(i & ":" & i).Select
Application.CutCopyMode = False
Selection.Copy
Rows(i + 1 & ":" & i + Range("B" & i).Value - 1).Select
Selection.Insert Shift:=xlDown
End If
Next i
Application.CutCopyMode = False
Range("A1").Select
End Sub
运行后成:
本回答被提问者采纳