复制一行,然后在其上方插入新行

时间:2019-09-23 22:48:26

标签: excel vba error-handling

我有一个宏填充工作簿,该工作簿可以正常工作数月,现在当用户使用一个宏时,我会收到错误消息(excel无法使用可用资源来完成此任务)。一旦退出错误,我就会收到错误消息(运行时错误'1004':范围类的插入方法失败)

我应该补充一件事。在我收到此错误之前,另一个用户收到该错误的信息(没有足够的内存来完成此操作。请尝试使用较少的数据或关闭其他应用程序。要提高内存的可用性,请考虑...。)

宏的基础是在第6行的上方插入一行。我在网上看了一下,但找不到有效的解决方案。我不认为这是导致问题的代码,因为如果不使用宏就无法插入行。

Sub NewData()

    Worksheets("Log").Rows(6).Select
    Selection.Copy
    Selection.Insert Shift:=xlUp

    Application.CutCopyMode = False
    Selection.ClearContents

    Application.Worksheets("Log").Range("N6").Select


End Sub

1 个答案:

答案 0 :(得分:0)

设置范围,然后使用offset(-1,0)在其上方插入一行。尝试这样的事情:

Sub insertaboverow()

    Dim rng As Range
    Set rng = Range("N6")

    If Not rng.Cells(1, 1) Is Nothing Then
        rng.Cells(1, 1).Offset(-1, 0).Rows.Insert   
    End If
End Sub