簡體   English   中英

根據單元格值復制和粘貼行

[英]Copy and Paste Rows based on cell value

我試圖復制行10:12,並在每次D8中的值超過1時將其粘貼在下面(即D8 = 2,然后粘貼一次,如果值等於3,則粘貼兩次,依此類推)。 我什至不知道從哪里開始用這段代碼。

我猜你可以做這樣的事情:

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

這個公式

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

如果您只想保留D8中的值,則可以根據第八行中的值向下復制,將公式更改為

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

該公式將需要每三行更新一次,因此單元格A16中的公式

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

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM