从活动行添加行和复制列单元格并粘贴到新行

时间:2019-07-19 15:48:59

标签: excel vba

如标题中所述,我需要在活动单元格下方添加一行,然后从活动行的E-J列中复制单元格并将其粘贴到新插入的行中。

我是VBA的初学者,我编写的当前代码如下:

Sub Addrow()

ActiveCell.Offset(1).EntireRow.Insert

Range(Cells(ActiveCell.Row, "E"), Cells(ActiveCell.Row, "F"), Cells(ActiveCell.Row, "G"), Cells(ActiveCell.Row, "H"), Cells(ActiveCell.Row, "I"), Cells(ActiveCell.Row, "J")).Select

Selection.Copy
    Range(Cells(ActiveCell.Offset(1), "E")).Select
    ActiveSheet.Paste

End Sub

代码无法正常工作,我相信问题是在插入新行之后选择单元格范围时,尽管代码很乱,我不确定还有一种更有效的编写方法,我仍然不能弄清楚为什么它不起作用。

如果有人能够发现错误的根源,那将是真的!

1 个答案:

答案 0 :(得分:0)

问题之一可能是您不能为 [((1, 2, 3),), ((1,), (2, 3)), ((2,), (1, 3)), ((3,), (1, 2)), ((1,), (2,), (3,))] 函数提供两个以上的参数。

此外,您通常希望避免在代码运行时依赖工作表或范围处于活动状态(因为> pip install more_itertoolsRange可能会更改,这可能会使您的代码行为异常/不确定。 )。

ActiveSheet是一个函数,它将返回其所有参数共享的范围。在这种情况下,它返回范围ActiveCell和范围Intersect公用的单元格。

columns E to J接受一个row of the Active cell参数,因此您可以直接将目标范围传递给它。

Range.Copy

我确实测试了代码,它似乎按照您的描述进行了操作(即从选定的行复制并粘贴到其下面新插入的行)。

相关问题