VBA复制粘贴范围每7行,7次

时间:2018-05-01 18:22:36

标签: excel-vba loops copy paste vba

下午好,

经过几个小时的研究,我正在尝试做正确的代码,我终于要问专家了。我对VBA非常陌生(但现在迷上了征服它!)。

我正在尝试复制我每天输入的3个数据单元格范围(我将数据输入J:L列),然后将其粘贴7次,每隔7行(所以,我复制/粘贴星期一数据)到下一个7个星期一,在它们各自的行中)。每天都会更改,粘贴位置也会更改(星期二数据将被复制,然后粘贴到下面的下一个7星期二行等)。我输入的数据将始终是列J:L。 然后,一旦粘贴了数据,我就会有一个使用该数据的按钮,并清除它。因此,列J:L总是清晰的,直到我将数据添加到3个单元格的下一行。

任何帮助都表示赞赏,因为我很难过。我尝试了几种变体" lastrow"但是没有找到适合我的编码(从这里拼凑信息,但没有使它工作)。

我试图在这里添加一个快照,但很明显,我甚至也不喜欢这样:/ 这个想法似乎很简单,所以希望有一个简单的解决方案。

谢谢你的精彩! 编辑(抱歉让我第一次在这个网站上运行如此困难:/)

Sub CopyPaste()  
'  
' CopyPaste Macro  
' copies and pastes range for 8 total weeks  
'  
Dim lastrow As Long  
lastrow = Range("J" & Rows.Count).End(xlUp).Row  
'  
    Selection.Copy  
    Range("J27").Select  
    ActiveSheet.Paste  
    Range("J34").Select  
    ActiveSheet.Paste  
    Range("J41").Select  
    ActiveSheet.Paste  
    Range("J48").Select  
    ActiveSheet.Paste  
    Range("J55").Select  
    ActiveSheet.Paste  
    Range("J62").Select  
    ActiveSheet.Paste  
    Range("J69").Select  
    ActiveSheet.Paste  
    Application.CutCopyMode = False  
End Sub

1 个答案:

答案 0 :(得分:0)

看看这是否有帮助。我预见到一个问题,但是一旦你将工作表中的值复制到星期一,最后使用的行将是第70行或类似的东西。

Sub x()

Dim i As Long, lastrow As Long

lastrow = Range("J" & Rows.Count).End(xlUp).Row

For i = 1 To 7
    Cells(lastrow, "J").Resize(, 3).Offset(7 * i).Value = Cells(lastrow, "J").Resize(, 3).Value
Next i

End Sub