[英]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.