【发布时间】:2018-10-11 19:13:30
【问题描述】:
下午好,
在为我想要做的事情研究了太多小时的正确代码之后,我终于不得不在这里问专家了。我对 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
【问题讨论】:
-
请贴出您尝试过的代码。
-
Sub CopyPaste() ' ' CopyPaste Macro ' 复制和粘贴范围共 8 周 ' 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
-
第一个星期一总是从 J27 开始吗?您在哪里输入数据?
-
J27 是星期一的行,当时我开始尝试找出要粘贴到接下来 7 个星期一行的代码。一旦该日期过去,下周一我会将数据输入 J34,这样我就可以在那里复制,然后将其复制到接下来的 7 个周一行。
-
我有点困惑。您的代码建议您从未指定的单元格复制到 J27、J34 等。您能否举一个具体示例说明数据从哪里开始以及应该去哪里?
标签: excel loops copy paste vba