根据单元格值复制和粘贴行

时间:2013-03-27 19:11:13

标签: excel vba excel-vba copy copy-paste

我试图复制行10:12,并在每次D8中的值超过1时将其粘贴到下面(即D8 = 2然后粘贴一次,如果值等于3则粘贴两次,依此类推)。我甚至不知道从这个代码开始的地方......

2 个答案:

答案 0 :(得分:0)

我猜你可以做这样的事情:

Sub LoopeyPasteyFantastico()
    Dim ValueOverOne As Long
    Dim i As Long
    Dim LastRow As Long

    ValueOverOne = Sheet1.Cells(8, 4).Value - 1

    For i = 1 To ValueOverOne
        Sheet1.Range("10:12").Select
        Selection.Copy
        LastRow = Sheet1.Range("A65536").End(xlUp).Row + 1
        Sheet1.Range(LastRow & ":" & LastRow).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    Next i
End Sub

或者更好的选择(你不必使用复制和粘贴):

Sub LoopeyPasteyFantasticoAlternative()
    Dim ValueOverOne As Long
    Dim i As Long
    Dim LastRow As Long

    ValueOverOne = Sheet1.Cells(8, 4).Value - 1

    For i = 1 To ValueOverOne
        LastRow = Sheet1.Range("A65536").End(xlUp).Row + 1
        Sheet1.Range(LastRow & ":" & LastRow + 2).Value = Sheet1.Range("10:12").Value
    Next i
End Sub

答案 1 :(得分:0)

这个公式

=IF(A$8>=1,A10,"") 

将允许您根据第8行中的值进行复制,如果您只想坚持D8中的值,请将公式更改为

=IF($D$8>=1,A10,"") 

公式需要每隔三行更新一次,因此单元格A16中的forumalu将是

=IF(A$8>=2,A13,"")

enter image description here

相关问题