Копирование и вставка Excel VBA в цикле

Я работал над этим кодом VBA некоторое время, и, поскольку я полный нуб, я чувствую, что никуда не попал. Я исследовал тонну, но не могу объединить ответы, чтобы помочь с моим сценарием.

По сути, я пытаюсь собрать данные, построчно, с одного листа и экстраполировать их на другой лист. Я верю, что это будет связано с циклами, и я настолько новичок в VBA, что не знаю, как это сделать.

Вот логика, которую я пытаюсь использовать: для каждой строки на листе 1 я хотел бы выполнить 3 разных действия по копированию и вставке на лист 2, а затем он перейдет к следующей строке на листе 1 и выполнит 3 действия и так далее. Это будет продолжаться до тех пор, пока столбец A не будет пустым на sheet1. Данные Sheet1 начинаются с A3, а область вставки Sheets2 начинается с A2.

Первым действием является копирование ячеек F3, D3, A3 и H3 (в таком порядке, чтобы F3 было A2, D3 будет B2 и т. Д.) Из листа 1 в лист 2 в A2, B2, C2 и т. Д. Функции назначения могут не нужно использовать, потому что мне нужны только значения и никакие другие форматы - одна из многих проблем, с которыми я столкнулся.

Следующим действием является копирование ячеек F3, D3, A3 и I3 со страницы 1 на лист 2, вставленный под предыдущей копией, и вставка - снова без форматирования, а только значения. Также следует отметить, что некоторые из них могут быть пустыми (кроме столбца A), но мне все еще нужна эта строка, содержащая как минимум данные столбца A - это относится ко всем этим действиям.

Третье действие - копировать и вставлять листы F3, D3 и A3 листа определенное количество раз, ссылаясь на номер K3, и каждая копия и вставка будет находиться в следующей доступной пустой ячейке. Таким образом, если число в K3 будет выглядеть так, как будто оно создало 3 строки в sheet2 - всего 5 строк на sheet2, так как активность 1 и 2 создают собственную строку.

После того, как эти три действия завершены для строки 3 на листе 1, он переместится в строку 4 и выполнит предыдущие три действия и вставит их на лист2. И снова он не будет вставлять никаких форматов и в следующую пустую строку на листе 2. Также снова этот цикл остановится, когда ячейка в столбце A станет пустой.

Ниже мой неполный код. Я даже не думаю, что это поможет, и было бы лучше даже не смотреть на это. Я только начал расстраиваться, потому что я даже не могу сделать простое копирование и вставку, но все же одни циклы внутри циклов. Я также даже не начал свою третью деятельность. Я очень ценю это!

Sub copyTest3()

Dim proj As Range, release As Range, pm As Range, lead As Range, coord As Range
Dim leadCopy As Range, coordCopy As Range
Dim i As Range

Set proj = Range("A3", Range("A3").End(xlDown))
Set release = Range("D3", Range("D3").End(xlDown))
Set pm = Range("F3", Range("F3").End(xlDown))
Set lead = Range("H3", Range("H3").End(xlDown))
Set coord = Range("I3", Range("I3").End(xlDown))

Set leadCopy = Union(pm, release, proj, lead)
Set coordCopy = Union(pm, release, proj, coord)


For i = 1 To Range(ActiveSheet.Range("A3"), ActiveSheet.Range("A3").End(xlDown))
    leadCopy.Copy
    Sheets("Sheet2").Activate
    Range("A2").Select
    ActiveSheet.PasteSpecial xlPasteValues

    Application.CutCopyMode = False

    Sheets("Sheet1").Activate
    coordCopy.Copy
    Sheets("Sheet2").Activate
    Range("A2").Select
    ActiveSheet.PasteSpecial xlPasteValues

Next i

End Sub

Ответы на вопрос(2)

Ваш ответ на вопрос