Цикл Excel VBA Macro копирует ячейки на новый лист

Новое для VBA, мне нужно создать какую-то программу для цикла кода, который я уже создал. Мне нужно, чтобы это происходило столько раз, сколько в столбце A. Есть переменные, которые будут меняться: от A1 до A2, от B1 до B2, от C1 до C2 и поэтому строка 2 скопирует тег (2) рабочего листа, затем A3, B3 и C3 в тег (3) и т. д. Заранее спасибо.

Sub Copy1() Do Worksheets("WIP_List").Range("A1").Copy _ Destination:=Worksheets("Tag (1)").Range("A7:I12") Loop Until IsEmpty(ActiveCell.Offset(0, 1)) Do Worksheets("WIP_List").Range("B1").Copy _ Destination:=Worksheets("Tag (1)").Range("A24:I28") Loop Until IsEmpty(ActiveCell.Offset(0, 1)) Do Worksheets("WIP_List").Range("C1").Copy _ Destination:=Worksheets("Tag (1)").Range("D19:F23") Loop Until IsEmpty(ActiveCell.Offset(0, 1)) End Sub 

Редактировать:

Надеюсь, это объяснит лучше, я хочу сделать это, но без необходимости копировать это 200 раз, я хочу, чтобы он зацикливался, пока в столбце A больше нет данных

Sub Copy1 ()

 Worksheets("WIP_List").Range("A1").Copy _ Destination:=Worksheets("Tag (1)").Range("A7:I12") Worksheets("WIP_List").Range("B1").Copy _ Destination:=Worksheets("Tag (1)").Range("A24:I28") Worksheets("WIP_List").Range("C1").Copy _ Destination:=Worksheets("Tag (1)").Range("D19:F23") Worksheets("WIP_List").Range("A2").Copy _ Destination:=Worksheets("Tag (2)").Range("A7:I12") Worksheets("WIP_List").Range("B2").Copy _ Destination:=Worksheets("Tag (2)").Range("A24:I28") Worksheets("WIP_List").Range("C2").Copy _ Destination:=Worksheets("Tag (2)").Range("D19:F23") Worksheets("WIP_List").Range("A3").Copy _ Destination:=Worksheets("Tag (3)").Range("A7:I12") Worksheets("WIP_List").Range("B3").Copy _ Destination:=Worksheets("Tag (3)").Range("A24:I28") Worksheets("WIP_List").Range("C3").Copy _ Destination:=Worksheets("Tag (3)").Range("D19:F23") Worksheets("WIP_List").Range("A4").Copy _ Destination:=Worksheets("Tag (4)").Range("A7:I12") Worksheets("WIP_List").Range("B4").Copy _ Destination:=Worksheets("Tag (4)").Range("A24:I28") Worksheets("WIP_List").Range("C4").Copy _ Destination:=Worksheets("Tag (4)").Range("D19:F23") 

End Sub

Я думаю, что понимаю ваш вопрос и продолжаю цикл до тех пор, пока данные не станут четкими, и вы хотите увеличить их, пока значение не будет пустым. Использование функции IsEmpty и настройка поиска по 1 для каждой строки.

 Dim xlwsStatic As Excel.Worksheet Dim xlwsTemp As Excel.Worksheet Dim i As Integer Set xlwsStatic = ActiveWorkbook.Worksheets("WIP_List") 'assigning worksheet to xlws i = 1 'initial value of i Do While IsEmpty(xlwsStatic.Range("A" & i).Value) = False 'loops through Set xlwsTemp = ActiveWorkbook.Worksheets("Tag (" & i & ")") xlwsStatic.Range("A" & i).Copy _ Destination:=xlwsTemp.Range("A7:I12") xlwsStatic.Range("B" & i).Copy _ Destination:=xlwsTemp.Range("A24:I28") xlwsStatic.Range("C" & i).Copy _ Destination:=xlwsTemp.Range("D19:F23") i = i + 1 'increments i up one per loop increasing the row and changing xlwsTemp Loop 

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

  • Создать цикл для создания столбцов PostgreSQL
  • значения фильтра в столбце с петлей?
  • Условно перемещаемые данные перемещаются по пробелам
  • Как адаптировать структуру цикла к предпочтениям пользователя?
  • Python: Excel для Web в PDF
  • VBA - лучший способ для увеличения в цикле
  • Условно форматирование петлевого диапазона ячеек на основе значения в другой ячейке в VBA
  • Прокрутите папку, а для каждой копии книги вставьте диапазон в статическую книгу
  • Запись данных в следующий столбец на листе excel (VB.NET) (что не так с этим кодом?)
  • Необходимо пройти через два столбца и выполнить несколько условий, если они встречаются, нужно выделить ячейку и MsgBox
  • VBA Do Пока строка не найдена, затем шаг выхода
  • Давайте будем гением компьютера.