复制整个Excel行并粘贴到表格底部

时间:2016-06-14 14:46:40

标签: excel vba

我正在编写一个Excel宏,它逐行遍历Excel表格,并且应该复制整行并在满足条件时将其粘贴到最后一行。循环遍历行并满足条件即可,但是我仍然坚持复制某一行并将其粘贴到表的末尾。

Sub Makro1()
    Application.Goto Reference:="Makro1"

    Dim i As Integer

    With ActiveSheet
        'for looping
        totalRows = .Cells(.Rows.Count, "A").End(xlUp).Row

        'index of last row even after rows have been added
        lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row    

        'data starts at row #3
        For i = 3 To totalRows
            If Cells(i, 19).Value > 0 Then
                number = Cells(i, 19).Value
                Do While number > 0
                    lastRow = lasRow + 1        
                    Rows(lastRow) = Rows(i).Value                
                    number = number - 1
                Loop
            End If
        Next i
    End With
End Sub

我得到运行时错误1004。 我知道嵌套循环是可怕的,我只需要这个工作(非编码),让我的生活更轻松。

1 个答案:

答案 0 :(得分:0)

错误:

  

运行时错误' 1004':
  应用程序定义或对象定义的错误

...出现在代码的第一行:

Application.Goto Reference:="Makro1"

该语句需要一个名为" Makro1"的命名区域,但找不到它。如果它找到它,范围将滚动到视图中。如果这对您来说不重要,那么只需注释掉该行:

' Application.Goto Reference:="Makro1"

否则,打开"名称管理员"来自" Formulas"功能区上的选项卡,并检查工作簿具有的命名范围。可能会重现" Makro1"如果你知道应该以这种方式调用哪个范围。