我想根据A列将表1中的行(从第2行开始)复制并粘贴到表2中 . 列A包含日期 . 如果行大于或等于我在另一个工作表上的单元格中的某个日期,我想将行复制并粘贴到工作表2 . 我运行宏但它在第一个实例后停止执行 . 任何有关如何解决此问题的建议/指导都非常感谢 .
Sub CopyRows()
Dim MinDate As Date
MinDate = ThisWorkbook.Sheets("sheet3").Cells(2, 124).Value
lrow = Sheets("sheet1").Cells(Rows.Count, "A").End(xlUp).Row
For I = 2 To lrow
dest = Sheets("sheet2").Cells(Rows.Count, "A").End(xlUp).Row
If Cells(I, 1).Value >= MinDate Then
Rows(I).Copy Sheets("sheet2").Rows(dest + 1)
End If
Next I
End Subl
1 回答
我不清楚你的意思是“在第一个实例后停止执行” .
如果您的意思是宏正在复制> = MinDate的第一行,然后不复制任何其他行,则您显示的子例程中的任何内容都不会导致该行 . 但它确实存在一些潜在的问题 .
代码正在测试
Cells(I,1)
并在ActiveSheet
上复制Rows(I)
. 如果每次测试一行时该表不是Sheet1,那么它不会从正确的工作表进行测试或复制 . 您可以通过明确说明您正在测试和复制的工作表来解决这个问题 .我实际上会重新编写例程来使用工作表对象 . 我还包含了一些状态消息,因此您可以看到正在复制哪些行 .
如果这不是您遇到的问题,请提供更多详细信息 .
如果您不知道任何其他详细信息,可以通过在VBA屏幕上的宏中按F8一次一步地通过宏 . 当它以这种方式运行时,如果将鼠标放在变量上,它将告诉您它的当前值是什么 . 您可以这样做以找出代码中您的问题所在 .