复制并粘贴到图表2,基于表单1中的A条件不执行

我想从表1(从第2行开始)复制和粘贴行到基于列A的表2.列A包含date。 我想复制和粘贴到表2,如果它大于或等于我在一个单元格在不同的工作表中的某个date。 我运行macros,但它在第一个实例后停止执行。 任何意见/指导如何解决这个问题是非常感谢。

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 

我不清楚你的意思是“在一审之后停止执行”。

如果您的意思是macros正在复制> = MinDate的第一行,然后不复制任何其他行,则您显示的子例程中的任何内容都不会导致该错误。 但它确实有一些潜在的问题。

代码正在testingCells(I,1)并在ActiveSheet上复制Rows(I) 。 如果该工作表不是每次testing某一行时都是Sheet1,则不会从正确的工作表中进行testing或复制。 您可以简单地通过明确说明您正在testing和复制哪个工作表来解决这个问题。

 If Sheets("sheet1").Cells(I, 1).Value >= MinDate Then Sheets("sheet1").Rows(I).Copy Sheets("sheet2").Rows(dest + 1) End If 

我实际上会重写例程来使用工作表对象。 我还包括一些状态消息,以便您可以查看哪些行正在被复制。

 Sub CopyRows() Dim MinDate As Date, lRow As Long, i As Integer, lDest As Long Dim shtFrom As Worksheet, shtTo As Worksheet Set shtFrom = ThisWorkbook.Sheets("sheet1") Set shtTo = ThisWorkbook.Sheets("sheet2") MinDate = ThisWorkbook.Sheets("Sheet3").Cells(2, 124).Value lRow = shtFrom.Cells(Rows.Count, "A").End(xlUp).Row For i = 2 To lRow Application.StatusBar = "Row " & i & " of " & lRow lDest = shtTo.Cells(Rows.Count, "A").End(xlUp).Row If shtFrom.Cells(i, 1).Value >= MinDate Then Application.StatusBar = Application.StatusBar & " Copying..." shtFrom.Rows(i).Copy shtTo.Rows(lDest + 1) End If Next i Application.StatusBar = False End Sub 

如果这不是你遇到的问题,给我们更多的细节。

如果您不知道更多细节,可以通过在VBA屏幕上的macros中按一下F8键,一次只select一行。 当它以这种方式运行时,如果将鼠标放在一个variables上,它会告诉你它的当前值是什么。 你可以这样做来找出你的问题在代码中的位置。