excel怎么把符合条件的一行自动复制

比如:
名称 课时
语文 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列的对应课时。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-09-05

在工作表插入如下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

运行后成:

 

 

 

本回答被提问者采纳
第2个回答  2012-09-05
单独的函数好像无法实现吧,要用到宏程序。
相似回答