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

VBA copy paste range every 7th row, 7 times

下午好,

在为我正在尝试做的事情研究正确的代码后花费了太多时间,我终于不得不在这里请教专家了。我是 VBA 的新手(但现在迷上了征服它!)。

我正在尝试复制我每天输入的 3 个单元格的数据范围(我将数据输入列 J:L),然后将其粘贴 7 次,每隔 7 行粘贴一次(所以,我是 copy/pasting 星期一数据到接下来的 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

看看这是否有帮助。我预见到一个问题,一旦你在工作表中复制了周一的值,最后使用的行将是第 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