我试图复制行 10:12 并在每次 D8 中的值超过 1 时将其粘贴到下面(即 D8 = 2 然后粘贴一次,如果值等于 3 然后粘贴两次,依此类推)。我什至不知道从哪里开始这段代码所以......
			
			4229 次
		
2 回答
            0        
        
		
这个公式
=IF(A$8>=1,A10,"") 
将允许您根据第八行中的值向下复制,如果您只想坚持 D8 中的值,请将公式更改为
=IF($D$8>=1,A10,"") 
该公式需要每第三行更新一次,因此单元格 A16 中的公式为
=IF(A$8>=2,A13,"")

于 2013-03-28T12:32:25.157   回答
    
    
            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
于 2013-03-27T21:46:59.620   回答