2012-03-23 80 views
1

我想從工作表1(從第2行開始)複製和粘貼到工作表2基於列A.列A包含日期。如果大於或等於我在不同工作表上的單元格中的某個日期,我想將行復制並粘貼到工作表2上。我運行宏,但它在第一個實例後停止執行。任何關於如何解決這個問題的建議/指導是非常感謝。複製並粘貼到工作表2基於A條件的條件在工作表1中沒有執行

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 
+0

您的代碼適用於我。 – bernie 2012-03-23 16:12:09

+0

在日期的第一個實例> =某個日期之後停止。因此,例如,我在第一列中有兩行,分別是3/1/12。但是,代碼只會複製第一個實例,而不是第二個實例。 – VMO 2012-03-23 16:13:53

+0

我剛剛使用包含3/1/12的多個單元格進行了測試,它的工作正常。 – bernie 2012-03-23 16:16:01

回答

1

我不清楚你的意思是「停止在第一個實例後執行」。

如果您的意思是宏正在複製> = MinDate的第一行,然後不復制任何其他行,則您顯示的子例程中沒有任何內容會導致該錯誤。但它確實有一些潛在的問題。

該代碼正在測試Cells(I,1)並在ActiveSheet上覆制Rows(I)。如果該工作表每次測試一行時都不是Sheet1,則不會從正確的工作表進行測試或複製。您可以簡單地通過明確說明您正在測試和複製哪個工作表來解決這個問題。

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屏幕上的宏中按F8,一次只選擇一行。當它以這種方式運行時,如果你將鼠標放在一個變量上,它會告訴你它的當前值是什麼。你可以這樣做來找出代碼中你的問題在哪裏。

相關問題