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

时间:2015-01-28 21:18:58

标签: excel vba loops excel-vba copy-paste

在Sheet 1中,我有列中的数据。在工作表2中,我有专门指定用于复制和粘贴到工作表1的空行中的数据。我尝试循环工作表2中的数据并将其复制到以下行中的工作表1中(24,25, 26,等等。我的粘贴部分有问题。我还需要使代码统一,以便我可以修改工作表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中的行在我的电子表格中有数千个,而Sheet 2可以在30左右。因此,我使用Sheet 1中的第一个空白行作为起点来循环它是很重要的。< / p>

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 个答案:

答案 0 :(得分:0)

您不需要嵌套循环。你只需要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。