我正在编写一个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。 我知道嵌套循环是可怕的,我只需要这个工作(非编码),让我的生活更轻松。
答案 0 :(得分:0)
错误:
运行时错误' 1004':
应用程序定义或对象定义的错误
...出现在代码的第一行:
Application.Goto Reference:="Makro1"
该语句需要一个名为" Makro1"的命名区域,但找不到它。如果它找到它,范围将滚动到视图中。如果这对您来说不重要,那么只需注释掉该行:
' Application.Goto Reference:="Makro1"
否则,打开"名称管理员"来自" Formulas"功能区上的选项卡,并检查工作簿具有的命名范围。可能会重现" Makro1"如果你知道应该以这种方式调用哪个范围。