首页 > 解决方案 > Excel VBA复制和粘贴循环在最后使用的行下

问题描述

在这里完成 Excel VBA 的初学者。我在“A”列上有一个人员列表,想要将与人员列表无关的单元格“B2”复制并粘贴到另一列,例如“D”列,次数与列表中的人一样多. 但是,我希望此单元格“B2”的复制和粘贴列表从特定行开始,例如“D10”,当我第二次运行代码时,该列表将在其下方进行。

我当前的代码可以根据需要复制并粘贴到新列中,但粘贴的次数不如原始列表中的人多。

这是我当前的代码:

Sub copyloop()
Dim i As Integer
Dim NoOfCrew As Long

NoOfCrew = WorksheetFunction.Max(Sheets("Sheet3").Cells(Rows.Count, "A").End(xlUp).Row, 9)
NoOfCrew = NoOfCrew + 1

For i = 1 To NoOfCrew
ActiveSheet.Range("B2").Copy
ActiveSheet.Range("D" & NoOfCrew).PasteSpecial
Next i

End Sub

标签: vbaexcelexcel-2016

解决方案


您似乎需要一个 var 用于 # 名船员,而另一个用于起始位置。

Sub copyloop()

    Dim NoOfCrew As Long, StartAt as long

    with workSheets("Sheet3")

        NoOfCrew = .Cells(.Rows.Count, "A").End(xlUp).Row
        StartAt = application.Max(NoOfCrew , 10, _
                                  .Cells(.Rows.Count, "D").End(xlUp).Row)

        .Range("D" & StartAt ).resize(NoOfCrew, 1) = .Range("B2")

    end with

End Sub

推荐阅读