VBA – 复制并粘贴表格行到另一个表

我很新的VBA,我想解决我认为应该是一个非常简单的问题(我有一个Java / J2EE的背景)…我循环通过一个表,并希望将行复制到另一个工作表上的表基于一些条件陈述。 看下面的代码。

Sub closeActionItems() Dim i, iLastRow As Integer Dim date1 As Date Dim oLastRow As ListRow date1 = Date iLastRow = ActiveSheet.ListObjects("Open_Items").ListRows.Count For i = 6 To iLastRow If Cells(i, 7).Value <= date1 And Cells(i, 7).Value <> vbNullString Then Rows(i).Copy Set oLastRow = Worksheets("Closed").ListObject("Closed_Items").ListRows.Add 'Paste into new row Application.CutCopyMode = False Rows(i).EntireRow.Delete End If Next End Sub 

我已经尝试了许多不同的迭代,但一直无法find将剪贴板的内容复制到新创build的行的正确方法。

任何帮助,将不胜感激。 提前感谢。

将srcRow定义为一个范围如下所示:

 Dim srcRow as Range 

然后在你的循环尝试这样做:

  Set srcRow = ActiveSheet.ListObjects("Open_Items").ListRows(i).Range Set oLastRow = Worksheets("Closed").ListObjects("Closed_Items").ListRows.Add srcRow.Copy oLastRow.Range.PasteSpecial xlPasteValues Application.CutCopyMode = False Rows(i).EntireRow.Delete 

注意,你仍然有一个问题,就是你正在删除行,因为你试图循环它们,所以你可能想改变你的循环,以便它从底部开始并且上升。