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
下午好,
在为我正在尝试做的事情研究正确的代码后花费了太多时间,我终于不得不在这里请教专家了。我是 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