Excel VBA Copy и Paste Loop под последней использованной строкой - PullRequest
0 голосов
/ 05 июля 2018

Полный новичок в 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

1 Ответ

0 голосов
/ 05 июля 2018

Казалось бы, вам понадобится одна переменная для # экипажа и другая для стартовой позиции.

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
...