我是VBA的新手,所以我只做录制宏和编辑。我在表格中有一些数据从公式中捕获,我需要“归档”它们,以便在更改源时,数据仍然存在。我录制了一个宏来复制行中的公式以将其粘贴到下一行,并在同一行上复制和粘贴数字,以便在更改源时数据不会更改。但是当我下次点击它时,我希望宏对下一行做同样的事情,我如何编辑我的代码呢?
Range("B20:K20").Select
Selection.Copy
Range("B21:K21").Select
ActiveSheet.Paste
Range("B20:K20").Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
我不希望从第20行复制,而是希望宏从第21行复制并在下次运行宏时粘贴在第22行。请帮忙!谢谢!
答案 0 :(得分:1)
你可以使用:
With Cells(Rows.Count, "B").End(xlUp).Resize(, 10)
.Copy .Offset(1)
.Value = .Value
End With
,其中
Cells(Rows.Count, "B").End(xlUp)
引用B列中最后一个非空单元格
.Resize(, 10)
将引用的单元格扩展到跨度10列(即直到列K)
.Copy .Offset(1)
将引用范围复制到
.Value = .Value
仅在参考范围中留下值
答案 1 :(得分:0)
你只需要找到第一个空行,这样你就可以写到同一个空行。以下函数可以根据B列中的单元格为您提供第一个空行。
textPane.setMargin(new Insets(10, 5, 10, 5)); //top, left, bottom, right