在第一个空白行循环中复制和粘贴

Copy and Paste in First Blank Row Loop

在 Sheet 1 中,我在列中有数据。在 worksheet 2 中,我有专门指定用于复制和粘贴到 Sheet 1 的空白行中的数据。我正在尝试循环 Sheet 2 中的数据并将其复制到Sheet 以下各行中的 1 个(24、25、26 等)我在粘贴部分时遇到了问题。我还需要代码统一,这样我就可以修改 sheet 2 和 运行 宏而无需更改任何内容。我正在使用下面的代码。

Dim LastRow2 As Long
Dim BlankRow As Long
BlankRow = Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row + 1
LastRow2 = Sheets("Sheet2").Cells(Rows.Count, "A").End(xlUp).Row
For i = BlankRow To 50
    For j = 2 To LastRow2
        Sheets("Sheet2").Range("A" & j).Copy
        Sheets("Sheet1").Range("A" & i).PasteSpecial
    Next j
Next i

我还在下面放置了一个非常简化的示例,只是为了帮助您了解我到底想做什么。 Sheet 1 中的行在我的 spreadsheet 中有数千行,而 Sheet 2 可以达到 30 左右。所以对我来说重要的是我使用第一个空白行循环它以Sheet1为起点。

Sheet 1
        A
1       x
2       x
3       x
4       x
5       x
6       x


Sheet 2
        A
1       Headings
2       Tyler
3       Bill
4       Rob
5       Dennis

您不需要嵌套循环。您只需要 1. 类似于:

Dim LastRow2 As Long, BlankRow As Long, j As Long
BlankRow = Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row + 1
LastRow2 = Sheets("Sheet2").Cells(Rows.Count, "A").End(xlUp).Row
For j = 2 To LastRow2
    Sheets("Sheet2").Range("A" & j).Copy
    Sheets("Sheet1").Range("A" & BlankRow).PasteSpecial xlPasteValues
    BlankRow = BlankRow + 1
Next j
Application.CutCopyMode = False

这是您要尝试的吗? HTH.